1
0
mirror of https://codeberg.org/Freeyourgadget/Gadgetbridge synced 2024-07-03 11:33:19 +02:00
A free and cloudless replacement for your gadget vendors' closed source Android applications. See the list for supported devices.
Go to file
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
.gitea Make some clarifications to issue template for Device request 2022-09-15 19:59:37 +02:00
.idea/dictionaries Updated the dictionary to ignore more false positives (#1995) 2020-08-27 22:00:11 +02:00
.settings Enhancement and Fixes for Bengali Transliteration. (#1263) 2018-10-01 23:04:51 +02:00
.woodpecker Use own image for builds 2022-08-21 21:59:36 +02:00
app Bangle.js: Bump flavor targetSdkVersion to 31 2023-05-30 00:25:20 +02:00
config remove travis-ci related files 2021-09-25 15:18:05 +02:00
external Fossil/Skagen Hybrids: Allow launching watch apps from app manager 2023-01-02 15:15:48 +01:00
GBDaoGenerator Bump schema version to include new huami entities 2023-05-27 19:04:12 +01:00
gradle/wrapper bump gradle 2022-03-30 23:08:14 +02:00
src bump version, update changelogs 2023-05-10 15:27:31 +02:00
.gitattributes Add .gitattributes for consistent eol handling 2018-09-20 00:05:15 +02:00
.gitignore add app/.cxx/ to .gitignore 2021-09-07 21:52:49 +02:00
.gitmodules Fossil Hybrid HR: Add flexible custom menu on watch (#2616) 2022-03-22 20:52:43 +01:00
build.gradle bump android gradle plugin 2022-04-07 21:55:04 +02:00
CHANGELOG.md bump version, update changelogs 2023-05-10 15:27:31 +02:00
CONTRIBUTORS.rst update license headers 2021-01-10 23:38:13 +01:00
FEATURES.md Fixing the table because I made a mess 2020-08-02 16:44:01 +02:00
gradle.properties Revert "Revert "update gradle plugin"" 2019-02-11 23:02:57 +01:00
gradlew First checkin of actual code 2015-01-07 14:00:18 +01:00
gradlew.bat First checkin of actual code 2015-01-07 14:00:18 +01:00
LICENSE Fix spacing in LICENSE file 2017-11-01 14:58:43 +01:00
LICENSE.artwork Add flipper device icon 2022-09-07 16:56:28 +02:00
README.md experiment with osmand 2023-05-21 22:50:52 +02:00
settings.gradle Work towards using greenDAO #206 2016-03-28 23:18:23 +02:00

Gadgetbridge is now hosted on codeberg.org.

Get it on Codeberg

Gadgetbridge

Gadgetbridge is an Android (5.0+) application which will allow you to use your Pebble, Mi Band, Amazfit Bip and HPlus device (and more) without the vendor's closed source application and without the need to create an account and transmit any of your data to the vendor's servers.

Homepage - Blog - Wiki - Mastodon

Donate

Code Quality: Java Total Alerts Translate

Code Licenses

  • Gadgetbrige is licensed under the AGPLv3
  • Files in app/src/main/java/net/osmand/ and app/src/main/aidl/net/osmand/ are licensed under the GPLv3 by OsmAnd BV

Download

Get it on F-Droid

List of changes

Supported Devices

(WARNING: Some of them WIP and some of them without maintainer)

Special Pairing Procedures

Some Huami / Amazfit / Mi / Zepp devices can only be paired with Gadgetbridge using a secret key that has to be obtained once using the proprietary app with an account. Detailed instructions in the wiki: Huami Server Pairing

The Fossil Hybrid HR also requires using the proprietary app, but with a more complicated procedure. Details in the wiki: Hybrid HR.

Features

Please see FEATURES.md

Authors

Core Team (in order of first code contribution)

  • Andreas Shimokawa
  • Carsten Pfeiffer
  • Daniele Gobbetti
  • Petr Vaněk

Additional contributors

  • João Paulo Barraca (HPlus)
  • Vitaly Svyastyn (NO.1 F1)
  • Sami Alaoui (Teclast H30)
  • "ladbsoft" (XWatch)
  • Sebastian Kranz (ZeTime)
  • Vadim Kaushan (ID115)
  • "maxirnilian" (Lenovo Watch 9)
  • "ksiwczynski", "mkusnierz", "mamutcho" (Lenovo Watch X Plus)
  • Andreas Böhler (Casio)
  • Jean-François Greffier (Mi Scale 2)
  • Johannes Schmitt (BFH-16)
  • Lukas Schwichtenberg (Makibes HR3)
  • Daniel Dakhno (Fossil Q Hybrid, Fossil Hybrid HR)
  • Gordon Williams (Bangle.js)
  • Pavel Elagin (JYou Y5)
  • Taavi Eomäe (iTag)
  • Erik Bloß (TLW64)
  • Yukai Li (Lefun)
  • José Rebelo (Roidmi, Sony Headphones, Miband 7)
  • Arjan Schrijver (Fossil Hybrid HR watchfaces)

Contribute

Contributions are welcome, be it feedback, bug reports, documentation, translation, research or code. Feel free to work on any of the open issues; just leave a comment that you're working on one to avoid duplicated work.

Developer documentation - Support for a new Device - New Device Tutorial

Translations can be contributed via https://hosted.weblate.org/projects/freeyourgadget/gadgetbridge/

Community

If you would like to get in touch with other Gadgetbridge users and developers outside of Codeberg, you can do so via:

Do you have further questions or feedback?

Feel free to open an issue on our issue tracker, but please:

  • do not use the issue tracker as a forum, do not ask for ETAs and read the issue conversation before posting
  • use the search functionality to ensure that your question wasn't already answered. Don't forget to check the closed issues as well!
  • remember that this is a community project, people are contributing in their free time because they like doing so: don't take the fun away! Be kind and constructive.
  • Do not ask for help regarding your own projects, unless they are Gadgetbridge related

Having problems?

  1. Phone crashing during device discovery? Disable Privacy Guard (or similarly named functionality) during discovery.
  2. Open Gadgetbridge's settings and check the option to write log files
  3. Reproduce the problem you encountered
  4. Check the logfile at /sdcard/Android/data/nodomain.freeyourgadget.gadgetbridge/files/gadgetbridge.log
  5. File an issue at https://codeberg.org/Freeyourgadget/Gadgetbridge/issues/new/choose and possibly provide the logfile

Alternatively you may use the standard logcat functionality to access the log.