Razeeman / Android-SimpleTimeTracker

Simple app that tracks time.
GNU General Public License v3.0
536 stars 68 forks source link

feat: Add WearOS Support #162

Closed thehale closed 4 months ago

thehale commented 4 months ago

⌚ Simple Time Tracker for WearOS

Adds a WearOS companion app to enable changing active activities from one's wrist.

Features:

closes #60

https://github.com/Razeeman/Android-SimpleTimeTracker/assets/47901316/d2a9735d-880b-484d-8f57-419b4770c1e6

πŸ‘€ Important Implementation Notes for Review

πŸ“² Phone <-> ⌚ Wear Communication Protocol

Reliable communication between the phone and the watch can be tricky. Instead of puzzling over the code directly, I recommend first reading through the documentation of the protocol.

πŸ’₯This PR drops support for Android versions < 8.0

WearOS requires at least a minSDK of 23 (Android 6.0). The libraries I used to implement the app require at least minSDK of 26 (Android 8.0).

This is a significant change from Simple Time Tracker's current support for devices as old as Android 5.0. We'll have to discuss the amount of backward compatibility we want to include after incorporating a WearOS app.

According to Android Studio, here are the percent of active Android devices running at each API version as of today.

image image image

βš–οΈ MPL-2.0 Licensing

I would prefer to contribute my code under the terms of the MPL-2.0 license, which is fully compatible with the GPL-3.0 used in this repository.


[!NOTE] This draft PR is almost ready, pending a few final code quality touch-ups.

Track progress towards production-readiness in the forked repository.

thehale commented 4 months ago

Tagging @Razeeman for a review since I'm not sure if GitHub sends notifications for Draft PRs.

Razeeman commented 4 months ago

Hello! Thank you very much for the help. Looks cool! Looking through the code.

Razeeman commented 4 months ago

Also if it is possible could you update thehale:wearos branch to the recent dev? Commit 9210757 should already be there and shoud not be shown here in the changes. To avoid git history pollution.

Razeeman commented 4 months ago

If you don't mind I would merge and start working on preparing the release. Other changes can be made in separate PRs if there would be any.

Your PR motivated me to buy a watch and it would super cool to see it in action. Thank you very much for implementing it.