1
0
mirror of https://codeberg.org/Freeyourgadget/Gadgetbridge synced 2024-12-26 10:35:50 +01:00
Commit Graph

484 Commits

Author SHA1 Message Date
José Rebelo
79de641fe8 Use provider.exec for process execution during build
Required to enable configuration-cache, as per https://docs.gradle.org/8.8/userguide/configuration_cache.html#config_cache:requirements:external_processes
2024-06-30 20:41:06 +01:00
José Rebelo
9bff990370 Upgrade to gradle 8 2024-06-30 15:18:30 +00:00
Andreas Shimokawa
4cc00144b6 bump version add xml and fastlane changelog 2024-06-28 16:54:30 +02:00
Martin.JM
4c4ba623c4 Add camera implementation
This is to support watches with remote shutter applets that do not
act as remote triggers for other apps automatically.
2024-05-13 21:28:43 +00:00
José Rebelo
c0d0b4dfbe Update hamcrest-library to 2.2 2024-04-15 23:45:55 +01:00
José Rebelo
bf01d9b346 Update protobuf dependencies 2024-04-15 22:04:45 +01:00
Alik Aslanyan
f0a9ab7f98 Add Armenian transliteration 2024-04-15 19:58:27 +04:00
Arjan Schrijver
6f103b2897 Dashboard: Implement horizontal swiping and fix fragment related crashes 2024-04-10 21:53:03 +02:00
José Rebelo
75dc546aa9 Update threetenabp to the latest 2024-04-07 14:39:03 +01:00
Arjan Schrijver
43fddd0110 Dashboard view (#3478)
This adds a new dashboard-type view to Gadgetbridge. The new dashboard activity displays several widgets with aggregated statistics from multiple devices. New preferences are added to allow configuration of the dashboard and its widgets. A new bottom navigation bar is added to switch between the Dashboard and Devices views.

Some issues that prompted this feature and provided inspiration for the implementation:
- https://codeberg.org/Freeyourgadget/Gadgetbridge/issues/301 (More Intuitive User Interface)
- https://codeberg.org/Freeyourgadget/Gadgetbridge/issues/3074 (Ability to merge historical data from several devices)

Reviewed-on: https://codeberg.org/Freeyourgadget/Gadgetbridge/pulls/3478
Reviewed-by: José Rebelo <joserebelo@noreply.codeberg.org>
Co-authored-by: Arjan Schrijver <a_gadgetbridge@anymore.nl>
Co-committed-by: Arjan Schrijver <a_gadgetbridge@anymore.nl>
2024-04-04 19:28:04 +00:00
José Rebelo
c85a0edace Update roboelectric to 4.12, org.json to 20240303 2024-03-30 23:02:31 +00:00
Andreas Shimokawa
668ed5ab71 update changelogs, bump version 2024-03-25 09:46:40 +01:00
Andreas Shimokawa
59dcea5d94 bump version, update changelogs 2024-02-22 13:38:22 +01:00
MrYoranimo
fa1f99642a Move build variant-specific strings from build.gradle to separate resource files 2024-02-18 20:52:53 +00:00
Andreas Shimokawa
5b804bfb17 update changelogs, bump version 2024-02-12 15:36:50 +01:00
José Rebelo
61116c5fc8 Upgrade to gradlew 7.6, mockito-core 2.28.2
Fixes the unit tests after the AGP upgrade from 1a92bcf8a
2024-01-29 18:50:40 +00:00
José Rebelo
1a92bcf8a5 Upgrade to Android Gradle Plugin 7.4.2
Rename "main" flavor to "mainline", since that breaks the build.

https://stackoverflow.com/questions/72775247/productflavors-main-gradle-error-multiple-entries-with-same-key-main-and
2024-01-22 20:18:49 +00:00
MrYoranimo
25dcba23c3 Upgrade build-tools (33.0.0 -> 33.0.1)
This fixes a segfault in the aidl utility on Windows.
2024-01-17 20:16:38 +00:00
Andreas Shimokawa
aae820a6e7 make changelog smaller, bump version 2024-01-14 22:42:05 +01:00
Andreas Shimokawa
c58d45423e bump version, update fastlane and xml changelog 2023-12-16 18:28:01 +01:00
José Rebelo
e91ad80d27 Xiaomi: Cleanup code and comments 2023-11-25 22:18:34 +00:00
José Rebelo
543c8b28d0 Rename org.bouncycastle package
Fixes roboelectric in unit tests.
2023-11-25 21:16:53 +00:00
José Rebelo
08eb22b4cb Mi Band 8: Import Bouncy Castle 1.76 classes 2023-11-25 21:16:33 +00:00
José Rebelo
fda3b53657 Mi Band 8: Initial support (WIP) 2023-11-25 21:16:31 +00:00
rany
59b83b92c7 Update protobuf to 3.21.7
Required for building on M1 Macs.

Signed-off-by: rany <ranygh@riseup.net>
2023-11-02 17:17:50 +00:00
Arjan Schrijver
8cf8ca7395 Update dependencies 2023-10-09 09:53:36 +02:00
José Rebelo
b12ac00bb8 Lint: Ignore missing and extra translations 2023-10-08 21:46:37 +01:00
Ganblejs
2c5b687cef Bump main targetSdkVersion to 33 2023-10-04 11:12:17 +00:00
José Rebelo
f6ff357a6b Reduce number of git commits on nightly changelog
- Include last 100 commits
- Ignore weblate commits

The changelog_git is still being accidentally included into release
builds. It currently takes 6kb compressed.
2023-09-17 15:40:16 +01:00
Andreas Shimokawa
c86c7c59f4 bump version, update changelogs 2023-09-16 22:58:50 +02:00
Arjan Schrijver
557bfea35c Add lint baseline, enable linting on CI, fix some reported errors (#3291)
This PR:
- fixes some errors reported by `gradlew lint` and the Android Studio "Code Inspection" tool
- adds a snapshot file `lint-baseline.xml` of the remaining lint errors and warnings to be used by the linter as baseline
- adds a job for CI to run `gradlew lint` on every build

Reviewed-on: https://codeberg.org/Freeyourgadget/Gadgetbridge/pulls/3291
Reviewed-by: José Rebelo <joserebelo@noreply.codeberg.org>
Co-authored-by: Arjan Schrijver <a_gadgetbridge@anymore.nl>
Co-committed-by: Arjan Schrijver <a_gadgetbridge@anymore.nl>
2023-09-11 09:17:04 +00:00
Andreas Shimokawa
21be98ab23 update changelogs 2023-09-02 12:28:24 +02:00
José Rebelo
7fb34eb262 Build nightly changelog from git 2023-08-09 20:00:47 +01:00
Arjan Schrijver
b6e252c4c1 Switch UI to Material 3 and support dynamic colors 2023-08-08 08:47:26 +00:00
mormegil
8f5c32fbee Fix PineTime firmware upload for Android 12 target
Now that the target SDK was changed to 31, the `no.nordicsemi.android:dfu`
library needs to be updated, as the current version dies on Android 12+.

However, the fixed version (1.12.0) also fixed MTU handling: The previous
versions ignored the MTU settings completely for legacy DFU.
<https://github.com/NordicSemiconductor/Android-DFU-Library/pull/260>

And while our `PineTimeJFSupport` code always tried to set MTU to 517, it was
ignored. Which was good because PineTime does not support larger MTUs. So that
we need to set the correct low MTU now the library really applies it.

Note that the current version of the DFU library cannot be used right now, it
does not even compile because of androidx dependency mismatch.

Fixes #3203
2023-07-22 09:54:45 +00:00
Andreas Shimokawa
932249f148 bump version, add changelog 2023-07-07 21:08:53 +02:00
José Rebelo
ef99674eea Bump main targetSdkVersion to 31 2023-07-04 09:59:03 +01:00
Andreas Shimokawa
0f7fa75931 add changelogs, bump version 2023-06-30 13:06:00 +02:00
Ganblejs
7d1de4a5e8 Bangle.js: Bump flavor targetSdkVersion to 31
This also touches parts of the app not only used for bangle.js.
E.g. pending intents gets new flags from SDK 23 inclusive.
Bluetooth permissions are updated to work on SDK 31.
Permission handling is updated to the new way for doing it with
introduction of a new function. This is called for newer sdk versions.

bump Bangle.js flavor targetSdkVersion to 31

update comments re SDK 31

set the 'exported=true' I introduced to false instead - except for three places

add uses-permission for handling bluetooth in order to work on api >30

add if-blocks adding FLAG_IMMUTABLE to PendingIntents on api >30

add link to bluetooth documentation

Add comment to banglejs manifest. Add requirement annotation to ControlCenterv

bump compileSdkVersion to 31

add "OpenAppSettings" permission popup while working out individual permission popups on android 13

if SDK < 31 do permissions one by one, else send user to app info page to switch permissions manually

working solution, but needs cleaning

do some cleaning, not done though

remove some logging

remove import Log

tweak and remove toasts in new permissions handling

Change conditions `> Build.VERSION_CODES.Q` to `>= Build.VERSION_CODES.R` matching the style used everywhere else

Revert "Change conditions `> Build.VERSION_CODES.Q` to `>= Build.VERSION_CODES.R` matching the style used everywhere else"

This reverts commit 2929629ff43fbb685eb3d15e42459f321f68fa11.

Revert "add if-blocks adding FLAG_IMMUTABLE to PendingIntents on api >30"

This reverts commit ed8e1df7bb8b71fee745fbf9d10747d47c8f6cb8.

Pending intents gets `PendingIntent.FLAG_IMMUTABLE` if `(Build.VERSION.SDK_INT >= Build.VERSION_CODES.R)`.

Bangle.js: undo `@RequiresApi` code R

... to remove error in Android Studio where declared required api was
higher then minSDK version.

Use FLAG_MUTABLE for reply to test notification

This should fix Gadgetbridge crashing when replying to the test
notification from the debug activity. As reported here:
https://codeberg.org/Freeyourgadget/Gadgetbridge/pulls/2924#issuecomment-917282

Change to use FLAG_IMMUTABLE/_MUTABLE from SDK 23

... as suggested by Android Studio. This is supposed to make the app
more secure by not allowing certain changes to pending intents where
they are not expected. If I understood correctly.

Add PendingIntentUtils class to manage mutability
2023-05-30 00:25:20 +02:00
Andreas Shimokawa
a61c9391a4 bump version, update changelogs 2023-05-10 15:27:31 +02:00
Andreas Shimokawa
4f34725656 add changelog, bump version 2023-02-21 16:39:30 +01:00
Andreas Shimokawa
6b25281a71 draft changelog, bump version 2022-12-12 16:25:04 +01:00
Andreas Shimokawa
5e040a6dd5 bump version, update changelog 2022-10-18 09:22:45 +02:00
José Rebelo
26999c863b Fix Android Studio generated source directories 2022-10-15 10:20:42 +01:00
Andreas Shimokawa
d5fcac6114 bump version, update changelog 2022-10-06 10:29:36 +02:00
Andreas Shimokawa
25d0d262bf Revert "Introduce app shortcuts"
This reverts commit b4b153c62d.
2022-10-06 10:22:41 +02:00
Andreas Shimokawa
7d516a9c96 update changelog and version 2022-10-05 11:58:51 +02:00
Andreas Shimokawa
857a9bf229 Try to exclude non-free stuff from shortcuts library (#2918) 2022-10-04 07:23:40 +02:00
Daniele Gobbetti
b4b153c62d Introduce app shortcuts
This adds the functionality of long-pressing the launcher icon for directly connecting a device.
The devices are automatically added as shortcuts when they are being connected.
The helper library handles the maximum number of shortcuts automatically.
2022-10-02 17:18:41 +02:00
José Rebelo
d1ae6cf225 Zepp OS: Implement workout fetching 2022-10-02 16:07:21 +02:00
Andreas Shimokawa
a0ba977cde Revert "remove AndroidThreeTen library, since we have java8 in this branch"
This reverts commit 43eb6bfe0e.

The reason was not only Java8 but this also requires Android 8!
2022-09-28 07:51:10 +02:00
Andreas Shimokawa
e85d5dc741 bump version, update changelog 2022-09-27 18:40:36 +02:00
Andreas Shimokawa
6732bab481 Dirty port tinyECDH to Java, remove ndk dependencies
This has some advantages:
- Less stuff to download for building Gadgetbridge (CI Speedups)
- Shorter build time (no need to build shared library for all supported architectures)
- Easier debugging
- etc :P

What I did:
 - remove all curves except B163 to make porting easier
 - port to java with brain switched off
 - fix the "java has no unsigned" bugs
 - add some helpers to convert int[] to byte[] and back because java has no casts

The result is ugly, no one would write such crappy code from scratch, but I tried to
keep it as close to the C code as possible to prevent bugs. Since I did not know what
2022-09-27 10:51:14 +02:00
Andreas Shimokawa
0f44d8cbf2 add cbor dependency 2022-09-19 21:45:58 +02:00
José Rebelo
10265ad697 Remove multidex dependency 2022-09-11 16:14:18 +02:00
José Rebelo
83a2b10c03 Fix tests after SDK bump 2022-09-11 16:13:29 +02:00
Andreas Shimokawa
43eb6bfe0e remove AndroidThreeTen library, since we have java8 in this branch 2022-09-10 12:04:16 +02:00
Andreas Shimokawa
969164ba5d Remove KitKat support 2022-09-10 12:04:16 +02:00
Andreas Shimokawa
127fec1013 Use build tools version 31, bump protobuf-lite to 3.10
These changes where necessary to build on ARM64, hope it does not break anything
protobuf-lite 3.0 said the architecture aarch64 is unsupported for the protobuf compiler,
build tools 30 could not be installed via sdkmanager for an unknown reason.
2022-09-09 08:15:38 +02:00
Andreas Shimokawa
3e030eb131 draft changelog, bump version 2022-09-06 16:13:47 +02:00
Andreas Shimokawa
51c7a1f202 update changelog, bump version 2022-08-19 23:32:21 +02:00
José Rebelo
ba565df088 Xiaomi Smart Band 7: Initial support 2022-08-19 23:13:27 +02:00
vanous
3ae20b3929 add Banglejs Nightly release config 2022-08-11 01:03:40 +02:00
José Rebelo
5d82030d49 Refactor file logging logic 2022-08-07 23:24:16 +01:00
Andreas Shimokawa
e77149f7e1 bump version update changelog 2022-07-22 12:22:08 +02:00
Gordon Williams
6bea0af9e0 Bangle.js flavor - move to SDK 30 as we need it for Play Store 2022-06-15 13:39:11 +01:00
Andreas Shimokawa
8a6c0ddbfe update changelog - bump version 2022-05-30 13:28:21 +02:00
Andreas Shimokawa
603d56c7aa update changelog, bump version 2022-05-18 10:45:44 +02:00
José Rebelo
5c6edea233 Mi Band 5: Add support for World Clocks 2022-05-10 13:59:25 +02:00
vanous
d386b01169 Allow string resources for build variants to be customized via gradle 2022-05-01 14:12:40 +02:00
vanous
3b9e13cfc5 bump cmake to 3.18.1 2022-04-02 12:09:05 +02:00
gfwilliams
2cb5844020 Bangle.js build flavor (#2621)
This PR adds build flavors to `build.gradle`. The default is called `main`, but we also add `banglejs` which allows the building of an app called `Bangle.js Gadgetbridge`.

This will have internet connectivity, allowing Bangle.js watches to request data directly from the internet - and it's named so as hopefully not to be confused with the normal offline Gadgetbridge, while still giving credit.

Eventually the plan is to put this on the Google Play store, and to have additions in it which are good for Bangle.js users but would otherwise negatively impact normal Gadgetbridge users (a build flavor is used so we can keep the same codebase and not fork).

About naming - I'd mentioned `Gadgetbridge for Bangle` to @ashimokawa but thinking about how it would appear in the app store and Android apps list, it probably makes sense to call it `Bangle.js Gadgetbridge` so it's listed under `B...`. Happy to change or use something else if you have strong opinions though.

**Note:** adding build flavors seems to add the flavor name to existing builds. As a result, *all other builds will now have `main` in the name*. Unfortunately I didn't see another way around this, but hopefully it won't break anything.

Co-authored-by: Gordon Williams <gw@pur3.co.uk>
Reviewed-on: https://codeberg.org/Freeyourgadget/Gadgetbridge/pulls/2621
Co-authored-by: gfwilliams <gfwilliams@noreply.codeberg.org>
Co-committed-by: gfwilliams <gfwilliams@noreply.codeberg.org>
2022-03-31 11:36:26 +02:00
Andreas Shimokawa
6223336bc3 bump gradle 2022-03-30 23:08:14 +02:00
Andreas Shimokawa
c5f28ea11e bump version, tweak changelog 2022-03-17 20:57:20 +01:00
vanous
1e6cde6790 Add nightly release setup 2022-02-02 13:21:31 +01:00
Andreas Shimokawa
d3ed458cfe update changelogs, bump version 2022-01-22 23:39:38 +01:00
vanous
53e7a4740e Add commit id into About screen 2021-12-30 10:40:40 +01:00
Andreas Shimokawa
7e2ac49cfc bump version, draft changelog 2021-12-27 21:54:33 +01:00
Andreas Shimokawa
1e715b4914 revert appcompat because it enforces android target sdk 31 2021-12-11 22:11:46 +01:00
Andreas Shimokawa
1b3b463f03 bump version, gradle, appcompat 2021-12-11 22:02:51 +01:00
Andreas Shimokawa
ab3a18a6b5 bump version update changelogs 2021-11-22 11:29:39 +01:00
Andreas Shimokawa
dc26f77516 Bump version, add changelogs 2021-11-02 11:53:58 +01:00
Andreas Shimokawa
8dffd288c9 bump version, draft changelog 2021-10-13 11:43:55 +02:00
Andreas Shimokawa
1569e648fa add changelog, bump version 2021-09-25 12:49:22 +02:00
Andreas Shimokawa
bc737100da bump version, add changelog 2021-09-02 11:21:05 +02:00
Andreas Shimokawa
86ccd408cd update changelog bump version 2021-08-26 10:59:53 +02:00
Andreas Shimokawa
1c6f055bef Mi Band 6 auth: Working jni call to generate keys 2021-08-26 10:59:53 +02:00
Andreas Shimokawa
9bd8424f83 Mi Band 6 auth: first experiments 2021-08-26 10:59:53 +02:00
vanous
de567ba3d3 draft changelog and other stuff for release 2021-08-15 21:13:15 +02:00
Andreas Shimokawa
2e33256584 java/gradle crap: do something I do not even want to understand to fix random build errors
Yes I hate Java, and I hate gradle.
Both are a huge waste of resources.
I wonder how many nuclear plants could be switched off if people would stop using this bloated crappy VM bullshit language and "ecosystem".
And no it does not "make you super productive" and it it does not justify "investing in more hardware cpu/ram/cloud capacity" because it is "cheaper than manpower".
2021-07-30 16:18:06 +02:00
Andreas Shimokawa
c6bff25d29 bump gradle and gradle plugin as auto-applied by Android Studio Arctic Fox (2020.3.1)
Bump protobuf gradle plugin to fix build
Also bump other unrelated dependencies and fix some linting
2021-07-29 18:09:15 +02:00
Andreas Shimokawa
7f73206bcd bump version, draft changelog 2021-07-20 12:16:53 +02:00
x29a
5b2ca65321 Added support for SMA Q2 (#2215)
Hi,

i applied the changes from [Emeryths fork](https://github.com/Emeryth/Gadgetbridge) to master in order to get the [SMA Q2 smartwatch](https://hackaday.io/project/85463-color-open-source-smartwatch) support upstream.

It uses [his firmware](https://github.com/Emeryth/sma-q2-oss) (pretty/most popular for this device).

Greatly appreciate any feedback as this is my first attempt to add a device to GB :)

I read through the [tutorial](https://codeberg.org/Freeyourgadget/Gadgetbridge/wiki/New-Device-Tutorial), are there other sources for adding new device support?

thanks!

Co-authored-by: x29a <0.x29a.0@gmail.com>
Reviewed-on: https://codeberg.org/Freeyourgadget/Gadgetbridge/pulls/2215
Co-authored-by: x29a <x29a@noreply.codeberg.org>
Co-committed-by: x29a <x29a@noreply.codeberg.org>
2021-07-20 12:08:12 +02:00
Andreas Shimokawa
d6b03e0281 changelogs, bump version 2021-07-14 12:07:32 +02:00
Andreas Shimokawa
edf4d7035a bump version, add changelogs 2021-07-05 10:39:23 +02:00
Andreas Shimokawa
f328f80394 bump version, draft changelog 2021-06-13 15:38:57 +02:00
Andreas Shimokawa
5e66447788 bump version, update changelog 2021-05-29 17:05:11 +02:00
Andreas Shimokawa
3eff54c807 Use flexbox layout for icons in device cards
Fixes #2301 on small screens
2021-05-26 13:26:34 +02:00
Andreas Shimokawa
d8533fc676 Draft changelog, bump version 2021-05-16 17:56:52 +02:00
TaaviE
e4d70ade2a Improved PineTime/InfiniTime firmware DFU metadata parsing and checks 2021-05-03 00:12:51 +03:00