rt-bishop / Look4Sat

Open-source satellite tracker and pass predictor for Android, inspired by Gpredict
https://play.google.com/store/apps/details?id=com.rtbishop.look4sat
GNU General Public License v3.0
612 stars 58 forks source link

Implement audio cues for aiming #136

Closed domnantas closed 2 months ago

domnantas commented 2 months ago

First of all, congratulations on becoming a father!

There is a blind amateur radio operator in Lithuania who dreams about making some contacts via a satellite using a handheld antenna. None of the sat prediction apps I have tried handle accessibility well. Therefore, I decided to implement simple audio/haptic cues that would help find the passing satellites without the need to look at the screen. This would work great with the phone mounted on the antenna.

It is necessary to add an option toggle in the settings view (and disable it when "Use sensors to rotate radar view" is off). Also, the functionality should probably be moved to a separate Composable. I come from a web dev background, so I don't have enough knowledge to understand the Android ecosystem and patterns to make those changes myself.

I understand the devel branch is in the middle of a migration to Jetpack Compose, and the project is on hold due to family matters, but I hope this PR will see the light of day at some point :)

rt-bishop commented 2 months ago

Thanks so much @domnantas for the congrats! Yeah, it's a totally new experience that requires a lot of patience and the ability to tolerate a lack of sleep. But it's going surprisingly well so far =)

Your solution is quite nice, I'm happy to accept it as is, I'll move and refactor things a bit later on, when I have more time. Accessibility is indeed a pain point in almost every app that's created not by some "big business". Once Compose migration is finished I need to spend some time on that as well.

Thank you so much for reading other issues and PRs. As you mentioned already I'm not sure when Compose rebuild will go live, however I'd suggest checking out the main branch and implementing similar changes on it locally. That branch shows what is currently live in Google Play and has a more functional version of the app than devel branch. Even though it's still using the old view based system you can implement your changes in RadarFragment class. I assume that would be even easier to implement because you won't need to deal with SideEffects and can simply create a function to handle observable data. That way you can create a fully functional apk for that person and won't need to wait for me. I hope this is a good compomise.