Commit graph

625 commits

Author SHA1 Message Date
geeksville
38b4bc255c 0.7.90 read on if you want to see the stories of bluetooth trauma #76
So I'm trying to get an old version of bluetooth on Sony phones to work
In the process I realized I've always been doing something dumb which
bastically works fine, but is an ugly hack I also did to support old
devices.  Due to an accident of history there were two different layers
of the app which were trying to manage bluetooth connections, which was
dumb.  Always only one layer of an app should worry about such things.

/**
     * Should we automatically try to reconnect when we lose our connection?
     *
     * Originally this was true, but over time (now that clients are smarter and need to build
     * up more state) I see this was a mistake.  Now if the connection drops we just call
     * the lostConnection callback and the client of this API is responsible for reconnecting.
     * This also prevents nasty races when sometimes both the upperlayer and this layer decide to reconnect
     * simultaneously.
     */
2020-07-04 17:40:44 -07:00
geeksville
bae1a124d2 Don't bounce the interface if the UI changes to a device we are already using 2020-07-04 16:54:48 -07:00
geeksville
6c7d108545 0.7.89 2020-07-04 12:47:38 -07:00
geeksville
bc6fa0b1bb If we have an exception thrown *back to us* complain and ignore it? 2020-07-04 11:33:24 -07:00
geeksville
f7ca63ed92 better error message if we can't find the update service 2020-07-04 11:32:51 -07:00
geeksville
92b3fa8d1f bug #76 - old sonys can take a VERY long time for the setMTU operation
to complete.  Change timeout to 10 secs (units in the field were showing
the mtu operation completing after 5 seconds.

Also - don't throw an exception if we encounter a result when we've already
killed things with the failsafe timer
2020-07-04 11:19:54 -07:00
geeksville
cc05be7d87 bug #76 fix a related autobug from feh123's log
Non-fatal Exception: kotlin.KotlinNullPointerException
       at com.geeksville.mesh.service.BluetoothInterface.doDiscoverServicesAndInit(BluetoothInterface.java:357)
       at com.geeksville.mesh.service.BluetoothInterface.access$doDiscoverServicesAndInit(BluetoothInterface.java:78)
       at com.geeksville.mesh.service.BluetoothInterface$onConnect$1.invokeSuspend(BluetoothInterface.java:429)
       at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(BaseContinuationImpl.java:33)
       at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.java:56)
       at kotlinx.coroutines.scheduling.CoroutineScheduler.runSafely(CoroutineScheduler.java:571)
       at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.executeTask(CoroutineScheduler.java:738)
       at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker(CoroutineScheduler.java:678)
       at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.java:665)
2020-07-04 11:02:18 -07:00
geeksville
169cb7dcd7 fix unit tests 2020-07-02 14:46:37 -07:00
geeksville
85bdd25782 fix warning 2020-07-02 14:46:29 -07:00
geeksville
5f34fcba17 0.7.88 oops - if no work is pending, we also try to reconnect 2020-07-02 14:08:12 -07:00
geeksville
dde5348b3a 0.7.87 2020-07-02 10:39:02 -07:00
geeksville
7faf4d2d79 fix software update button 2020-07-02 10:37:35 -07:00
geeksville
7bd6615cb7 oops - I wasn't properly checking for presence of firmware files 2020-07-02 10:32:47 -07:00
geeksville
0006858469 Fix autobug, don't show update button if we can't find the filename 2020-07-02 10:21:14 -07:00
geeksville
36949b83e5 Merge remote-tracking branch 'root/master' into dev 2020-07-02 10:12:44 -07:00
Kevin Hester
e74f12e6c6
Merge pull request #75 from lgoix/battery
Display battery level of remote nodes #64
2020-07-02 10:12:34 -07:00
geeksville
8ea949a437 fix autobug with old samsung phones 2020-07-02 09:53:52 -07:00
geeksville
103b21aafd Add stress tester that simulates super high chance of BLE failures
and fix bug that it revealed (missing handling of error during discovery)
2020-07-02 09:38:08 -07:00
geeksville
e5d6ffc4bd fix #77, see below:
root cause in log:
the problem is that we are running dropAndReconnect (because of an error diduing writec) at the same time as handleSendToRadio called scheduleReconnect because of the exception

fix is: now that BluetoothInterface is smart enough to do its own reconnections, do not auto reconnect in SafeBluetooth.  Instead just throw a BLEException and assume the client will reconnect if it wants.
2020-07-02 08:46:25 -07:00
geeksville
6182879d98 0.7.86 test build for https://github.com/meshtastic/Meshtastic-Android/issues/76 2020-07-02 08:11:09 -07:00
geeksville
4333f775f9 0.7.85 2020-07-01 18:10:44 -07:00
geeksville
37a909e65d include firmware bins only in release builds 2020-07-01 18:10:30 -07:00
geeksville
c0e58391a3 Fix problem of old messages not being remembered 2020-07-01 18:00:28 -07:00
geeksville
800060a991 Fix #77: when shutting down interfaces, cancel any retry attempts 2020-07-01 16:31:23 -07:00
geeksville
41bd082296 don't spam crashreport server if the device sent a corrupted protobuf 2020-07-01 15:50:07 -07:00
geeksville
2520a5e69d fix new autobugs 2020-07-01 15:43:01 -07:00
geeksville
b7d0b7fca4 0.7.84 2020-07-01 15:42:46 -07:00
Ludovic Goix
d822538c0e Display battery level of remote nodes #64 2020-07-01 08:28:06 -04:00
geeksville
4172b221f0 autobug: failure to start should be treated like any other BLE exception 2020-06-30 12:35:58 -07:00
geeksville
fed418dae2 better debug output for the next time an autobug occurs 2020-06-30 12:18:49 -07:00
geeksville
0349e823f8 don't spam crashlytics with non-bug reports 2020-06-30 12:02:12 -07:00
geeksville
e6fd79f477 fix another autobug - clear gatt first, because close() can fail 2020-06-30 11:39:04 -07:00
geeksville
17faecc170 fix autobug 2020-06-30 11:13:18 -07:00
geeksville
cfd6823120 0.7.82 2020-06-28 18:07:01 -07:00
geeksville
549b1e8d7c fix #68 - workaround a disconnect bug in old androids
https://github.com/don/cordova-plugin-ble-central/issues/473#issuecomment-396790239
2020-06-28 18:04:52 -07:00
geeksville
773e81d25f print scan errors to log 2020-06-28 16:09:56 -07:00
geeksville
68cc494021 autobug - don't fail if the gatt goes away while we are connecting 2020-06-28 16:09:37 -07:00
geeksville
40055f603d Don't include firmware in development builds (speeds install time) 2020-06-28 14:55:02 -07:00
geeksville
c7c89aeb71 Merge remote-tracking branch 'root/master' into dev 2020-06-28 14:23:32 -07:00
tuxphone
dee4e31c97
Update strings.xml
username_unset - look to "unset", normally not translated to "ungesetzt" instead use "nicht gesetzt"
Translated "cancel" to "Abbrechen".  Expected standard for most users. If you want to use "Rückgängig" please fix the typo ("Rückgänig")
looking_for_meshtastic_devices - corrected wrong case
new_channel_rcvd - corrected wrong case
2020-06-28 20:47:41 +02:00
geeksville
90961ba217 Minor Japanese fixes from @Neklan. 2020-06-27 15:30:35 -07:00
geeksville
d18319f16f @jinks17 contributed Slovenian 2020-06-27 15:30:07 -07:00
geeksville
d75f7d3721 0.7.81 2020-06-25 17:58:48 -07:00
geeksville
1fd80c06d8 Fix #67, see that issue for writeup. gatt needs to be @Volatile 2020-06-25 17:56:31 -07:00
geeksville
2780a08931 The android Gatt caching bug on old phones (based on my reading of
the android C code) needs a small delay after calling refresh() because
otherwise the (stale) BLE handles are not discarded until _after_
we start using the connected service.
2020-06-25 15:53:17 -07:00
geeksville
8e0ceb6661 Merge remote-tracking branch 'root/master' into dev 2020-06-24 14:59:43 -07:00
geeksville
ca6de33943 Allow user to enter only a very restricted list of channel name chars
(for now - possibly loosen in the future - someone reported the device
code didn't like odd characters, and we definitely don't want anything
>127).  Also, shrink length to 11 chars (which is 12 including the nul
terminator on the device side (current limit in mesh.options).
2020-06-24 14:58:56 -07:00
Slavomir Hustaty
a9fa63f4df
Update strings.xml
Synced via Android Studio Translations Editor with current default/English values.
2020-06-23 15:24:28 +02:00
geeksville
d78932d6da Proper version checking and enable BLE software update for new devices 2020-06-22 17:14:29 -07:00
geeksville
6001d22837 @zone added Turkish translations! 2020-06-22 16:30:40 -07:00