Skip to content
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

Feature request: Android based watch support #37

Open
TheLastProject opened this issue Oct 24, 2020 · 21 comments
Open

Feature request: Android based watch support #37

TheLastProject opened this issue Oct 24, 2020 · 21 comments
Labels
common: uncommon Most users are unlikely to come across this or unexpected workflow severity: tolerable Low/no impact on users state: help wanted I looked into this issue but couldn't solve it quickly state: needs info type: enhancement New feature or request

Comments

@TheLastProject
Copy link
Member

Issue by gtr33m
Tuesday Nov 06, 2018 at 03:18 GMT
Originally opened as brarcher/loyalty-card-locker#282


I have an amazfit Stratos which is Android 5.1 based with a 320x300 pixel resolution. The app installs and works with a bit of tweaking of the fonts, however the title bar of an individual barcode is too large and takes up too much of the screen. Could you please include an optimisation for a smaller screen?

Thanks

@TheLastProject
Copy link
Member Author

Comment by brarcher
Tuesday Nov 06, 2018 at 06:01 GMT


Trying to install the app to a watch simulator it says that the app does not declare 'uses-feature watch', and thus will not install. Are you modifying the application to install on your watch, or are forcing the install some other way?

I've not considered the use case of using a watch for this application. Supporting a watch requires a separate APK specially for the watch, from what I understand. Supporting a watch is fine, though I do not have one myself so I do not have much incentive. I'd gladly accept contributions which support a watch in a maintainable way.

@TheLastProject TheLastProject added type: enhancement New feature or request state: help wanted I looked into this issue but couldn't solve it quickly labels Oct 24, 2020
@TheLastProject
Copy link
Member Author

Comment by gtr33m
Tuesday Nov 06, 2018 at 07:36 GMT


I actually just installed the APK directly using adb, and it installed
fine, and runs without crashing. Obviously it's not optimised for such a
small screen, and input of new cards is difficult, but to get around this I
installed the app on the phone, created some cards, exported, then imported
on the watch.

Not sure if the attached photos will post from this email. If not I'll
attach as links.

I'm happy to donate, but unfortunately not enough to get you a watch to
play with 😉

Regards,

Mark Hawkins

20181106_183040.jpg
https://drive.google.com/file/d/1zIhBykmpa0ieayQtCguIgCPfgt8jMXVWcg/view?usp=drivesdk

20181106_183047.jpg
https://drive.google.com/file/d/1YoMJmDdRDpAXi3CxZK-hfS0LcNAEzrNWKg/view?usp=drivesdk

20181106_183057.jpg
https://drive.google.com/file/d/1WuvzOELb93gCDZQvB5c8v27e6JnyJUjEvQ/view?usp=drivesdk

20181106_183109.jpg
https://drive.google.com/file/d/14-epgtYyZBdIwHdCH-14kM-c2JoBZ3jH3A/view?usp=drivesdk

On 6 Nov. 2018 17:01, "Branden Archer" [email protected] wrote:

Trying to install the app to a watch simulator it says that the app does
not declare 'uses-feature watch', and thus will not install. Are you
modifying the application to install on your watch, or are forcing the
install some other way?

I've not considered the use case of using a watch for this application.
Supporting a watch requires a separate APK specially for the watch, from
what I understand. Supporting a watch is fine, though I do not have one
myself so I do not have much incentive. I'd gladly accept contributions
which support a watch in a maintainable way.


You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
brarcher/loyalty-card-locker#282 (comment),
or mute the thread
https://github.com/notifications/unsubscribe-auth/ACK2lSRIHlhO9ereaNfMroIjm70TnDePks5usSWkgaJpZM4YPrlA
.

@TheLastProject
Copy link
Member Author

Comment by brarcher
Wednesday Nov 07, 2018 at 06:20 GMT


I actually just installed the APK directly using adb, and it installed fine, and runs without crashing.

Hm. Maybe Android Studio prevented me from installing the APK on the simulator, but doing it with adb directly works fine. I expect that the Play store would be similar, in that it would restrict it. I do not think that F-Droid supports watches (link). Probably the only way to do it without modifying the app is to side load it with adb.

I tried to access the photos, but they are links to Drive. I requested permission to see the pictures. It may be easier to drag/drop them into the comment box on Github, if that is possible.

I'm happy to donate, but unfortunately not enough to get you a watch to play with

lol, that is fine. (:
If there is someone out there who is interested and has the ability to contribute a change, I'd be happy to review it.

So, asking about the use case, what happens when you are at the grocery store and you need to give the clerk your card? I usually hand over my phone and they scan it. Would you be taking off your watch and giving it to them, trying to reach over and scan the watch, or something else? How would that work?

@TheLastProject
Copy link
Member Author

Comment by gtr33m
Wednesday Nov 07, 2018 at 07:59 GMT


I've shared an item with you:

20181106_183057.jpg
http://drive.google.com/file/d/1WuvzOELb93gCDZQvB5c8v27e6JnyJUjEvQ/view?usp=sharing&invite=CM7H-JcF&ts=5be29b65

It's not an attachment – it's stored online. To open this item, just click
the link above.

@TheLastProject
Copy link
Member Author

Comment by gtr33m
Wednesday Nov 07, 2018 at 08:00 GMT


I've shared an item with you:

20181106_183047.jpg
http://drive.google.com/file/d/1YoMJmDdRDpAXi3CxZK-hfS0LcNAEzrNWKg/view?usp=sharing&invite=CNuTh64I&ts=5be29b7c

It's not an attachment – it's stored online. To open this item, just click
the link above.

@TheLastProject
Copy link
Member Author

Comment by gtr33m
Wednesday Nov 07, 2018 at 08:00 GMT


I've shared an item with you:

20181106_183040.jpg
http://drive.google.com/file/d/1zIhBykmpa0ieayQtCguIgCPfgt8jMXVWcg/view?usp=sharing&invite=CKj4gsgD&ts=5be29b90

It's not an attachment – it's stored online. To open this item, just click
the link above.

@TheLastProject
Copy link
Member Author

Comment by gtr33m
Wednesday Nov 07, 2018 at 08:47 GMT


I need to clarify that my watch is an Amazfit Stratos, which is Android 5.1
based, not Wear OS. There is no play store connected, but you can side load
normal Android apps. Some work, many do not, but usually because of the
screen format or the lack of keyboard input rather than hardware problems.

The majority of your users will probably have Wear OS watches, which would
have access to the Wear OS play store, but no side load ability. Wear OS
would have a better experience, but you’d have to modify the app a lot and
the certification process is pretty stringent.

On the other hand, the nice thing about being Android 5.1 based is that
your app already works pretty well as it is. Not necessarily super easy to
setup on the watch, but importing is rather easy. Export from the phone
app, connect the watch to your computer and copy the file to the root using
any normal file explorer, and import on the watch.

The only real problem is the size of the header which takes up too much of
the available real estate, and it can be slow and tedious to adjust the
font size down. Otherwise it works fine. Even the auto max brightness works.

Regards,

Mark

On Wed, 7 Nov 2018 at 17:20, Branden Archer [email protected]
wrote:

I actually just installed the APK directly using adb, and it installed
fine, and runs without crashing.

Hm. Maybe Android Studio prevented me from installing the APK on the
simulator, but doing it with adb directly works fine. I expect that the
Play store would be similar, in that it would restrict it. I do not think
that F-Droid supports watches (link
https://forum.f-droid.org/t/android-wear-support/1940). Probably the
only way to do it without modifying the app is to side load it with adb.

I tried to access the photos, but they are links to Drive. I requested
permission to see the pictures. It may be easier to drag/drop them into the
comment box on Github, if that is possible.

I'm happy to donate, but unfortunately not enough to get you a watch to
play with

lol, that is fine. (:
If there is someone out there who is interested and has the ability to
contribute a change, I'd be happy to review it.

So, asking about the use case, what happens when you are at the grocery
store and you need to give the clerk your card? I usually hand over my
phone and they scan it. Would you be taking off your watch and giving it to
them, trying to reach over and scan the watch, or something else? How would
that work?


You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
brarcher/loyalty-card-locker#282 (comment),
or mute the thread
https://github.com/notifications/unsubscribe-auth/ACK2leDbBU45TjYkqjEbAGZlktJAmnDjks5usnudgaJpZM4YPrlA
.

--
Mark Hawkins

@TheLastProject
Copy link
Member Author

Comment by brarcher
Thursday Nov 08, 2018 at 04:34 GMT


Ah, OK. You explanation of what the device helps make more sense. Namely, it is not a Wear OS device after all.

Are you able to build the code? If so, could you try the following to see if it better reduces the header:

The following two lines in loyalty_card_view_layout.xml control the height of the title bar when displaying a barcode:

                android:layout_marginTop="?actionBarSize"
                android:layout_marginBottom="?actionBarSize"

If you change them to something else, for example the following:

                android:layout_marginTop="10dp"
                android:layout_marginBottom="10dp"

You should see the title bar decrease in size. On my emulator it went from:

screenshot_1541651452

to

screenshot_1541651390

If that gets what you are hoping for, then success! A setting for that field could be created, that way you could configure it instead of it being fixed. Let me know if the suggested change gets you what you need.

@TheLastProject
Copy link
Member Author

Comment by brarcher
Thursday Nov 08, 2018 at 04:35 GMT


Also, do you mind if I put your pictures into the thread for reference? You listed a barcode in one picture, and I want to be sure its value is not sensitive.

@TheLastProject
Copy link
Member Author

Comment by gtr33m
Thursday Nov 08, 2018 at 04:38 GMT


No problems I can modify and build. I'll give it a try on the weekend and
let you know how it goes.

Is there a setting that sets the default font size for each text field as
well? I wouldn't mind changing the defaults so that I don't have to change
each entry.

Regards,

Mark Hawkins

On Thu, 8 Nov. 2018, 15:34 Branden Archer <[email protected] wrote:

Ah, OK. You explanation of what the device helps make more sense. Namely,
it is not a Wear OS device after all.

Are you able to build the code? If so, could you try the following to see
if it better reduces the header:

The following two lines in loyalty_card_view_layout.xml
https://github.com/brarcher/loyalty-card-locker/blob/master/app/src/main/res/layout/loyalty_card_view_layout.xml#L128
control the height of the title bar when displaying a barcode:

            android:layout_marginTop="?actionBarSize"
            android:layout_marginBottom="?actionBarSize"

If you change them to something else, for example the following:

            android:layout_marginTop="10dp"
            android:layout_marginBottom="10dp"

You should see the title bar decrease in size. On my emulator it went from:

[image: screenshot_1541651452]
https://user-images.githubusercontent.com/5264535/48177915-0e8b0e00-e2cc-11e8-9eaa-7431336699bd.png

to

[image: screenshot_1541651390]
https://user-images.githubusercontent.com/5264535/48177874-f0bda900-e2cb-11e8-8bc6-2e56ab946911.png

If that gets what you are hoping for, then success! A setting for that
field could be created, that way you could configure it instead of it being
fixed. Let me know if the suggested change gets you what you need.


You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
brarcher/loyalty-card-locker#282 (comment),
or mute the thread
https://github.com/notifications/unsubscribe-auth/ACK2lWh5teMZvHpelzpByv0GeIXNmUnKks5us7RGgaJpZM4YPrlA
.

@TheLastProject
Copy link
Member Author

Comment by gtr33m
Thursday Nov 08, 2018 at 04:56 GMT


Go ahead. It's my park run barcode, but if anyone wants to use it to record
a new 5k time, I'm sure it will be faster than mine 😀

Regards,

Mark Hawkins

On 8 Nov. 2018 15:38, "Mark Hawkins" [email protected] wrote:

No problems I can modify and build. I'll give it a try on the weekend and
let you know how it goes.

Is there a setting that sets the default font size for each text field as
well? I wouldn't mind changing the defaults so that I don't have to change
each entry.

Regards,

Mark Hawkins

On Thu, 8 Nov. 2018, 15:34 Branden Archer <[email protected] wrote:

Ah, OK. You explanation of what the device helps make more sense. Namely,
it is not a Wear OS device after all.

Are you able to build the code? If so, could you try the following to see
if it better reduces the header:

The following two lines in loyalty_card_view_layout.xml
https://github.com/brarcher/loyalty-card-locker/blob/master/app/src/main/res/layout/loyalty_card_view_layout.xml#L128
control the height of the title bar when displaying a barcode:

            android:layout_marginTop="?actionBarSize"
            android:layout_marginBottom="?actionBarSize"

If you change them to something else, for example the following:

            android:layout_marginTop="10dp"
            android:layout_marginBottom="10dp"

You should see the title bar decrease in size. On my emulator it went from:

[image: screenshot_1541651452]
https://user-images.githubusercontent.com/5264535/48177915-0e8b0e00-e2cc-11e8-9eaa-7431336699bd.png

to

[image: screenshot_1541651390]
https://user-images.githubusercontent.com/5264535/48177874-f0bda900-e2cb-11e8-8bc6-2e56ab946911.png

If that gets what you are hoping for, then success! A setting for that
field could be created, that way you could configure it instead of it being
fixed. Let me know if the suggested change gets you what you need.


You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
brarcher/loyalty-card-locker#282 (comment),
or mute the thread
https://github.com/notifications/unsubscribe-auth/ACK2lWh5teMZvHpelzpByv0GeIXNmUnKks5us7RGgaJpZM4YPrlA
.

@TheLastProject
Copy link
Member Author

Comment by brarcher
Thursday Nov 08, 2018 at 05:30 GMT


Here are the pictures you posted:

20181106_183047
20181106_183040
20181106_183109
20181106_183057

@TheLastProject
Copy link
Member Author

Comment by brarcher
Thursday Nov 08, 2018 at 05:38 GMT


Is there a setting that sets the default font size for each text field as well?

The default value for the setting are in settings.xml under <!-- Default values -->. That only is used when the app loads for the first time. To use the defaults from that file again you will need to wipe the app data.

@TheLastProject
Copy link
Member Author

Comment by alexanderadam
Wednesday Aug 26, 2020 at 15:19 GMT


For Garmin there's already "Barcode Wallet" but it cannot sync anything with loyalty card locker.

@TheLastProject
Copy link
Member Author

I'm closing this issue because smartwatches running stock Android are very very very rare. Wear OS support would be more useful.

@cunidev
Copy link

cunidev commented May 4, 2021

I think they are actually relatively common (Amazfit, some Garmins, ...), and the same codebase could perhaps be used for smaller displays and Wear watches

@TheLastProject
Copy link
Member Author

Oh? Do you have some example devices for me, or a webpage listing this? Would be good to know a bit more if it is indeed more common than I thought.

@cunidev
Copy link

cunidev commented May 4, 2021

Not sure I know all, but:

  • Garmin Overlander
  • Amazfit Stratos / Verge / Stratos3 / ...
  • Several older Samsung Gear watches (those pre-Android Wear)
  • Huawei Watch GT series (if I recall correctly)
  • Perhaps Honor Magic watches?
  • Almost all generic China watches above €50

I guess there are several more which I do not know of, so feel free to correct me

@TheLastProject TheLastProject reopened this May 4, 2021
@TheLastProject TheLastProject added common: uncommon Most users are unlikely to come across this or unexpected workflow severity: tolerable Low/no impact on users labels Feb 5, 2022
@muznyo
Copy link

muznyo commented May 29, 2022

Not sure I know all, but:

  • Garmin Overlander
  • Amazfit Stratos / Verge / Stratos3 / ...
  • Several older Samsung Gear watches (those pre-Android Wear)
  • Huawei Watch GT series (if I recall correctly)
  • Perhaps Honor Magic watches?
  • Almost all generic China watches above €50

I guess there are several more which I do not know of, so feel free to correct me

galaxy watch 4 and also pixel watch which will release soon

@TheLastProject
Copy link
Member Author

TheLastProject commented May 29, 2022

galaxy watch 4 and also pixel watch which will release soon

Those two run WearOS, not Android, and thus aren't related to this GitHub issue. This is specifically about Android itself running on smartwatches. Those watches would be better served by #25

@TheLastProject
Copy link
Member Author

To my knowledge, the app is pretty good at responding to different UI scales (and a lot of UI has changed since the LKL days). Will need more info on what exact parts don't work well to look into this further.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
common: uncommon Most users are unlikely to come across this or unexpected workflow severity: tolerable Low/no impact on users state: help wanted I looked into this issue but couldn't solve it quickly state: needs info type: enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

3 participants