Commit graph

24 commits

Author SHA1 Message Date
Dirk Hohndel
aa41fbbf79 Android: add java code to share files
Android's sandbox makes us jump through hoops in order to share files
with other apps. We need to declare a file provider and use specific
paths where the files are located.

Then we have java code (I couldn't make it work as JNI) that takes the
filenames and creates content:// URIs for them and then hands those off
to a sharing activity that is provided by Android.

This can then be used to create attachments for support emails, or to
share the log files with other apps - both of which will solve the
annoying maximum log file length that we have with using the binder to
add the log file text to the message body.

This also finally replaces the 'compile' directive in build.gradle with
'implementation' - removing a warning that we've had for ages.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2022-03-01 14:16:25 -08:00
Dirk Hohndel
b87cbed53c Android: target API level 30
As of November 20201 the Google Play store now requires that new apps
target API level 30. The minimum API level remains 21 so we should
continue to support devices all the way back to Android 5.0 (Lollipop).

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2021-11-12 15:32:31 -08:00
Dirk Hohndel
ef5c94bb81 Android: fix broken permissions
In trying to avoid the wrath of the Google Play police I ended up giving
up too many permissions. And while in my test installs things continued
to work, in new installs on Android 10 or newer the lack of
FINE_LOCATION permission resulted in BLE scans no longer working.

The frustrating thing is that apparently installing an update with a
different set of permissions isn't enough to trigger either the bug or
the fix (at least not reliably). What appears to work is to uninstall
the existing app and then do a fresh install of a new app with the
correct permissions.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2021-10-18 20:32:47 +00:00
Dirk Hohndel
afdfccd274 Android: allow user installed root certificates
On Android devices that no longer get updates to the system installed
SSL root certificates, the user can easily install the updated Let's
Encrypt root certificate, but that is only used by Subsurface-mobile if
we explicitly allow the use of those user installed root certificates.

Fixes #3335

Suggested-by: Greg Hunter
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2021-10-14 15:53:10 +00:00
Dirk Hohndel
2bb88a354f Android: hardcode permissions and don't ask for features
That seems to be the way to force it to not request FINE_LOCATION or GPS access.
If I leave this on 'auto' then the dependency on QtPositioning (for showing the
map) appears enough for it to claim access to GPS location. I no longer want
to deal with the Google Play police for that.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2021-09-13 11:21:34 -07:00
Dirk Hohndel
fd88058060 android: update Subsurface-mobile manifest for Qt 5.15
With the switch to the bundle build (introduced at Qt 5.14) a couple of the
settings in the manifest had to change.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2020-11-19 17:18:33 -08:00
Dirk Hohndel
cadfec26ab Android: update target SDK version to 29
This will be required for Android updates over the next few weeks.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2020-08-18 13:22:11 -07:00
Christof Arnosti
779b84bfa0 usb-serial-for-android: Use wakelock
Android takes some pretty hard measures to save power, including
shutting down the CPU. Since this can interfer with the download from an
usb serial device, we now use a wakelock to keep the CPU running during
download.

Signed-off-by: Christof Arnosti <charno@charno.ch>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2020-03-16 07:58:20 -07:00
Dirk Hohndel
05f7ed0e1d Android: update the target SDK Version to 28
This is required by the play store starting November.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2019-09-21 15:13:10 -07:00
Jan Mulder
6ea50fcfb7 Android build: set newer versions and parameterize ANDROID_PLATFORM
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>
2018-12-30 11:20:34 -08:00
Dirk Hohndel
d27777790e Android: add Java class to receive Intents
We want to be able to respond to a USB device being plugged in.
This simply logs the information we get from the device. Sadly the
really useful getProductName and getManufacturerName require API level
21 (so Android 5.0 or newer) and we still have a couple hundred users on
4.1-4.4.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2018-08-11 11:14:22 -07:00
Dirk Hohndel
5047e90857 Android: set target API level to 26
This doesn't affect the minimum we support, but a target level of at
least 26 will be required starting in August in order to be able to
upload to the Google app store. This is equivalent to targeting Android
8.0. Google plans to bump this target API level every year.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2018-05-19 14:15:11 -07:00
Dirk Hohndel
c05fe9fc9b Subsurface-mobile on Android: add USB intent filter
With this a few FTDI based dive computers should be visible from the app.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2017-05-29 20:37:18 -07:00
Jan Mulder
3d8c0b2771 Android build: remove references to ministro stuff
First, Ministro (an app to help installing Qt dependencies on
the mobile platform) is not needed in Subsurface context, as all
dependencies are part of the distribution. Secondly, it breaks the
build as the strings (removed here) are also defined in Qt, and
apparently the Gradle build is detecting this double define.

Signed-off-by: Jan Mulder <jlmulder@xs4all.nl>
2017-05-27 07:09:27 -07:00
Dirk Hohndel
11f7e18139 QML UI: support extreme widescreen Android devices
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2017-04-06 21:22:56 -07:00
Anton Lundin
56b518d956 android: Rework build.sh
This reworks build.sh for proper argument parsing and variable quoting.

Signed-off-by: Anton Lundin <glance@acc.umu.se>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2017-02-06 21:16:10 -08:00
Dirk Hohndel
54b97ec848 Qt 5.7 requires at least Android SdkVersion 16
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2016-06-22 13:22:06 -07:00
Dirk Hohndel
68bb49e4ca Fix Android keyboard issue as recommended by Kirigami
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2016-04-21 11:40:02 -07:00
Dirk Hohndel
e9e453b009 Android build: pass in build nr
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2016-03-05 21:23:27 -08:00
Dirk Hohndel
a64eef7f82 Android build: automate setting the right version number
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2016-03-05 17:14:33 -08:00
Dirk Hohndel
04e994b575 Subsurface-mobile on Android: change the splash screen methodology
This is based on post by Ben Laud
https://medium.com/@benlaud/complete-guide-to-make-a-splash-screen-for-your-qml-android-application-567ca3bc70af

It creates a theme that uses a splash drawable that Android will show
immediately when the application is launched. And then starts the QML
application with visibility set to false adn only makes it visible (and replace
the splash screen) once initialization is finished.

We still get a little flicker with the switch from splash to start page to dive
list, but over all the experience is hugely improved. And the bug that the
splash screen stays around when starting Subsurface-mobile in landscape also
appears to be fixed.

Fixes #994

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2016-01-19 12:42:58 -08:00
Miika Turkia
bcdd5645a6 Add splash screen for android-mobile
Signed-off-by: Miika Turkia <miika.turkia@gmail.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-12-28 14:03:48 -08:00
Anton Lundin
c78e4fb92d Use a different package for the mobile app
Now we produce two different android apps, and to be able to have both
installed at once, we need to put them in different packages.

Signed-off-by: Anton Lundin <glance@acc.umu.se>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-07-16 18:41:06 -07:00
Dirk Hohndel
cbda93ce11 Add different icon for mobile app
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-07-09 16:37:43 -07:00