-
-
Notifications
You must be signed in to change notification settings - Fork 952
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add "Find my phone" app. #2053
base: main
Are you sure you want to change the base?
Add "Find my phone" app. #2053
Conversation
Build size and comparison to main:
|
Corresponding PR to GadgetBridge |
And reverse? Find my watch? Make PineTime blink display and vibrate? |
Find my watch already works. It is Alert Notification Service. In Amazfish -> Settings -> Debug page -> Phone Call. |
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? |
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. |
This comment was marked as outdated.
This comment was marked as outdated.
Previous attempt: #1193 |
FYI here are some notes about the limitations of the |
Well, you have a point. Indeed, using ImmediateAlertService has some drawbacks. Problems you mentioned are not solved here - in this app button returns to original state after timeout in few seconds, there are no any complex communications. So having this PR and your work maintainers have a choice - either use standard BLE service, having some drawbacks, or develop custom solution, which may give better user experience. I'll be happy with any of these choices. Or may be this functionality is out of "product vision" of the InfiniTime and it will not be merged - I don't know... If I can help in any way to bringing this functionality to main branch, let me know, please. |
Just noted that corresponding issue at present is the leader by "thumb-up" reactions :) @JF002 @mark9064 I'll be very happy to assist with merging this PR. Is there anything I can do to help with review? |
I agree that the BLE spec sucks completely here. Both the IAS and FMP have annoying limitations that makes them kind of useless :( I think implementing just the IAS is probably our best bet, but we should probably bend the rules a bit and expect the central to keep ringing even on disconnection etc. I honestly have no clue who the IAS is designed for TBH. As for this PR, I think the UI needs some work. The "None-Mild-High" buttons aren't immediately clear in functionality to the user. Though the specification leaves it vague, I think we could assign more precise meaning to the levels- whether the companion app chooses to do something else doesn't really matter as we don't get to control the meaning of levels anyway. Maybe Stop, Vibrate and Ring? Or maybe we should simplify it to just Stop and Ring (and skip ever sending the mild level)? (as an aside, I also wanted to remove all client roles from InfiniTime as they're kind of silly but the spec doesn't allow notify either- sending a notification to the central makes sooooo much more sense to me. So that puts a hole in that plan which I'm a little sad about. Oh well) |
b7117c2
to
3e0c1f1
Compare
I think the two button design looks quite good, what about you? I'll try to review soon but things are looking busy- I'll get to it when I can |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think this app could be improved by some UI rework:
- The app should be aware of whether BLE is connected and whether the connected device supports the IAS. If not, it should show an appropriate message and disable the buttons, otherwise they can be enabled. It should also respond to connection changes, so it'll need a
Refresh()
method to check the bluetooth conditions continuously and change the UI as needed - It should maintain state (only while the app is open) - so it should show a message like "Device alerting" after a successful IAS write, and "Alert stopped" after setting the no alert level. On app load since the IAS state is unknown, it would probably be best to display a simple "Ready"/"Disconnected"/"Alert service unavailable" message and replace this message after sending an alert
- Since signal may be bad when using this service, it should explicitly handle message send failures, and report back a different message to when the service isn't present or BLE is unavailable
Other than those points the rest looks good 👍
2006948
to
f33578a
Compare
Thank you for all the changes, I will try to review them properly soon! Apologies in advance if it takes me a while to get round to it |
Co-authored-by: Vyacheslav Chigrin <[email protected]>
Co-authored-by: mark9064 <[email protected]>
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