Add "Find my phone" app.
This change set adds implementation of client for BLE "Immediate alert service", allowing companion apps get notifications from PineTime watch when requested by user.
Fixes: #343
This pull request is result of joint work of @jmlich and @vchigrin, most of the code is written by Jozef (personal contributions can be found by commit history).
That is how that app looks like
After user presses "Mild" or "High" button phone starts ringing and vibrating. User can stop this either by pressing "None" button on the PineTime, or by pressing button in GadgetBridge companion app on the phone.
To make this work some changes in GadgetBridge application were required, I suppose to upstream this after ensuring that this functionality will be accepted in InfiniTime.
Build checks have not completed. Possible reasons for this are:
- The checks need to be approved by a maintainer
- The branch has conflicts
- The firmware build has failed
Corresponding PR to GadgetBridge https://codeberg.org/Freeyourgadget/Gadgetbridge/pulls/3746
And reverse? Find my watch? Make PineTime blink display and vibrate? Don't know what this would take. Just a logical follow up 😁
Find my watch already works. It is Alert Notification Service. In Amazfish -> Settings -> Debug page -> Phone Call. Also Immediate Alert Service is implemented and shows None/Mild/High levels, but this is not right to find watch.
Sorry if its offtopic, but is it also possible to have something like a signal strength indicator so you can see how close the device is and triangulate it? Doing a ring with an app could be broken by do not disturb.
The signal strength or more precisely RSSI (Received Signal Strength Indication) is specified/measured in BLE and Nimble can provide the value. I am not sure if it is reasonable reachable in the code.
Dear maintainers, I kindly ask to look at this PR in the next few months. There is a risk for me to lose access to GitHub in September due to US sanctions package published in June. I am not 100% sure in this scenario - official statements a bit vague and I don't know how GitHub lawyers will interpret them. But, as they say, "hope for the best but prepare for the worst".
Previous attempt: https://github.com/InfiniTimeOrg/InfiniTime/pull/1193
FYI here are some notes about the limitations of the Immediate alert service standard: https://github.com/InfiniTimeOrg/InfiniTime/pull/1193#issuecomment-1656976536