1
0
mirror of https://codeberg.org/Freeyourgadget/Gadgetbridge synced 2024-06-28 16:00:12 +02:00
Commit Graph

72 Commits

Author SHA1 Message Date
TaaviE
df3ee872ae Improved logging in bonding and tried to recover from weirdness 2021-05-30 01:00:48 +03:00
TaaviE
09eb470b64 Renamed removeBroadcastReceivers to a more correct name 2020-12-28 22:03:41 +01:00
Toby Murray
ab306b1352 Add BlueTooth receivers in onResume
Pairing some devices requires a PIN to be entered. E.g. the flow is: confirm you'd like to pair, pass off to Android which prompts for a PIN to pair with (typically shows up on the non-phone device's screen or is hard coded in the manual), then return back to the app.

When this pairing request screen pops up, it takes focus. This invokes onPause and onStop in the DiscoveryActivity, which removes the BlueTooth broadcast receivers. Returning focus (after successful pairing), there's nothing to listen to the event. Practically speaking, GadgetBridge last saw the device as BOND_BONDING, so it's out of sync. If queried, the device is BOND_BONDED, so it's good to move on to the next step.

Many existing pairing activities (Lenovo, MiBand, Pebble, Watch9) have an implementation of onResume() to presumably tackle this issue, this adds it to `DiscoveryActivity` as well. Testing with some other supporting code, this allows a Garmin vivosport to appear in Gadgetbridge.
2020-12-28 22:03:41 +01:00
xaos
68e7a5fea9 refined error message for invalid authentication key
Co-Authored-By: xaos <xaos@noreply.codeberg.org>
Co-Committed-By: xaos <xaos@noreply.codeberg.org>
2020-12-20 00:25:44 +01:00
TaaviE
6cd59fbd24 Refactored all pairing and bonding activities (#1989)
Fixed a few warnings

Refactored all bonding and bonding activities

Co-authored-by: TaaviE <taavi.eomae+github@gmail.com>
Reviewed-on: https://codeberg.org/Freeyourgadget/Gadgetbridge/pulls/1989
2020-08-28 15:38:18 +02:00
TaaviE
fb70a07f64 Tried fixing a LineageOS quirk with regular BT scans 2020-08-02 23:59:42 +03:00
TaaviE
749cf91f63 Handled the potential case of the same scan finishing twice and canceling a running scan being displayed 2020-08-02 23:43:00 +03:00
TaaviE
83f3b8565e Removed duplicate UI updates 2020-08-02 22:06:18 +03:00
TaaviE
d7ce49a2f3 Improved UX when Bluetooth is disabled mid-scan 2020-08-02 21:55:16 +03:00
TaaviE
9627360fac Fixed an UI error when Bluetooth discovery starting fails 2020-08-02 21:23:14 +03:00
TaaviE
61c74e9b15 Made the scans time out nicely 2020-08-02 21:07:14 +03:00
TaaviE
498c0d42e2 Made sure to check if location permission has been given by the user for scanning 2020-08-02 21:07:14 +03:00
TaaviE
aa9abd4b61 Added a log message that might help with debugging in some cases 2020-08-02 21:07:14 +03:00
TaaviE
f526bbe632 Added an API version guard to the new type of BLE scanning 2020-08-02 21:07:14 +03:00
TaaviE
b76a8267b8 Added CompanionDeviceManager support, added target 29 support, refactored the scan display and UI. 2020-08-02 21:07:14 +03:00
TaaviE
8da7a7aced Added a checkbox to un-ignore bonded devices 2020-08-01 15:49:54 +02:00
TaaviE
d871b03f33 Added a safety measure against a weird internal crash when stopping a BLE scan 2020-06-17 08:47:39 +02:00
TaaviE
68e746edff Made it adding already paired devices work properly if they're not ignored 2020-02-03 20:24:55 +01:00
TaaviE
b01e703e84 Added a check to avoid indefinitely lasting scans 2020-01-31 07:01:04 +02:00
License Bot
d6fa5d0dd5 Update license headers 2020-01-09 10:44:32 +01:00
Andreas Shimokawa
b9d3ec6df3 Make disabling new BLE scanning an option in preference
It was disabled in master, but not in the Fossil Q branch, now both is possible

This also reverts ca9761c336
which disabled classic BT scanning
2019-12-07 22:38:30 +01:00
License Bot
1dc8c26e2a Update license headers 2019-12-06 22:51:43 +01:00
Andreas Shimokawa
074994d24b Merge branch 'master' into fossil-q-hybrid 2019-10-12 20:47:19 +02:00
Andreas Shimokawa
7b5e333601 Skip service scan if supported device could be recognized without uuids during discovery 2019-10-12 20:15:09 +02:00
Andreas Shimokawa
4bf37ea70f Mi Band 4/Amazfit Bip Lite: Display a toast and do not try to pair if there was no auth key supplied 2019-10-12 19:44:45 +02:00
Daniel Dakhno
ca9761c336 adjusted DiscoveryActivity to use new scan 2019-10-10 02:09:23 +02:00
Andreas Shimokawa
57a235742d Properly disable new ble scanning for testing
(inverted logic committed accidentially)
2019-08-03 23:40:07 +02:00
Andreas Shimokawa
02d02d2329 Add Initial Mijia LYWSD02 support (Smart Clock with Humidity and Temperature Sensor)
This only sets the time on connect.
2019-08-02 23:49:14 +02:00
Andreas Shimokawa
a60268c05c Mi Band 4: Bring your own key support (blindly done, I dont have my key)
THIS STILL REQUIRES MI FIT AND YOUR EXTRACTED KEY

HOWTO:
1) press + button in Gadgerbridge
2) LONG PRESS Mi Band 4
3) Tap "Auth Key"
4) Enter your key prefixed with 0x (eg. 0x112233445566778899aabbccddeeff00)
5) Go back
6) Tap Mi Band 4

Success? You tell me.
2019-07-23 08:56:26 +02:00
Andreas Shimokawa
9bfef4cf4f Make per-device settings more versatile, move more settings
This allows to construct per-device settings by device type very easily

device coordinators just do the following to declare which setting they support,
the settings activity is then composed at runtime.

@Override
public int[] getSupportedDeviceSpecificSettings(GBDevice device) {
     return new int[]{
            R.xml.devicesettings_miband3,
            R.xml.devicesettings_swipeunlock,
            R.xml.devicesettings_pairingkey
    };
}
2019-05-22 00:42:22 +02:00
Andreas Shimokawa
db48707764 Add a device specific settings activity, currently used for setting the auth key for Amazfit Bip/Cor
When connecting to a new device, a random key gets generated, which can be
looked up from the device specific settings (accessible via the gear icon in
the device card in the main activity). Old devices keep their 0123456789@ABCDE
key, they have to be re-paired to change that.
During pairing, long-pressing the device candidate in the discovery activity
will also start the device specific settings activity, where the auth key
can be set manually priror to pairing. This is usefull to keep the ability to
pair one device with multiple android devices.

Fixes #1308
2019-04-21 21:25:33 +02:00
License Bot
beedb653e6 Update license headers 2019-02-13 20:43:31 +01:00
Daniele Gobbetti
75d3dffb14 Migrate to androidx support libraries and bump compile SDK version
"Optimize imports" has been run on all source files, there might be
unrelated changes, but these should be harmless.
2019-01-26 16:00:56 +01:00
License Bot
696653eabf Update contributors list and license headers. 2018-08-29 21:30:23 +02:00
Daniele Gobbetti
a5dd88df53 Fix discovery on devices with Android version < Lollipop
also reduce the amount of lines logged in discovery activity.
2018-07-22 16:14:36 +02:00
boun
11c545362a Do not crash inside the emulator (#1150)
As there is no bluetooth support in the emulator
2018-07-12 18:25:18 +02:00
jonnsoft
09a36aa5e7 MiBand3 pairing fix
(cherry picked from commit 3656ed9648b28475c35764da8a5cbeb420cfc307)
2018-07-09 22:56:16 +02:00
License Bot
225a600aed Update license headers 2018-06-25 18:35:46 +02:00
Daniele Gobbetti
3c00332a77 Always stop BT/BTLE discovery when exiting the Discovery Activity
Hopefully solves the leaks
2018-06-18 20:26:28 +02:00
TaaviE
08feaf30e1 Fixed a bunch of misspells. 2018-03-31 17:31:48 +02:00
Andreas Shimokawa
4e496cf2af Fix warnings in DiscoveryActivity and fix a potential NPE (fixes #1048) 2018-03-30 15:04:53 +02:00
License Bot
238bacde9f Update license headers 2018-02-26 14:27:33 +01:00
cpfeiffer
962720145e Fix custom language being lost for newly created activities
So we do need to set the language both on change and onCreate()

For some reason, the title bar of the SettingsActivity is not updated on recreate().

Closes #787
2017-09-03 01:04:34 +02:00
cpfeiffer
b142add631 Pass a GBDevice instead of GBDeviceCandidate to getBondingStyle() #651 2017-04-17 23:00:16 +02:00
cpfeiffer
e1797fc9f7 When connecting for the first time, set "pair" to true 2017-04-07 00:40:33 +02:00
cpfeiffer
5b8624de71 Make pairing optional after discovery
See #642 which might be fixed by not pairing.
2017-04-06 23:47:35 +02:00
License Bot
e392fbfd80 Add license header to all java files. 2017-03-10 14:53:19 +01:00
cpfeiffer
58e2538c4e Discovery: handle the case where a device is already bonded 2017-03-04 16:03:36 +01:00
cpfeiffer
ec6a8b6743 MI: some more logging 2017-01-28 23:25:15 +01:00
cpfeiffer
ac68bfe351 Mi Band 1+2: backend implementation of making BT pairing optional
- cleaned up the DeviceService.connect() variants
- discovery: pass the device candidate around instead of the mac address

Attempts to fix #512, #514, #518
2017-01-26 00:16:38 +01:00