CatimaLoyalty / Android

Catima, a Loyalty Card & Ticket Manager for Android
https://catima.app
GNU General Public License v3.0
840 stars 151 forks source link

Feature request: Android based watch support #37

Open TheLastProject opened 3 years ago

TheLastProject commented 3 years ago

Issue by gtr33m Tuesday Nov 06, 2018 at 03:18 GMT Originally opened as https://github.com/brarcher/loyalty-card-locker/issues/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 commented 3 years ago

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 commented 3 years ago

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" notifications@github.com 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 https://github.com/brarcher/loyalty-card-locker/issues/282#issuecomment-436140420, or mute the thread https://github.com/notifications/unsubscribe-auth/ACK2lSRIHlhO9ereaNfMroIjm70TnDePks5usSWkgaJpZM4YPrlA .

TheLastProject commented 3 years ago

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 commented 3 years ago

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 commented 3 years ago

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 commented 3 years ago

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 commented 3 years ago

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 notifications@github.com 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 https://github.com/brarcher/loyalty-card-locker/issues/282#issuecomment-436516820, or mute the thread https://github.com/notifications/unsubscribe-auth/ACK2leDbBU45TjYkqjEbAGZlktJAmnDjks5usnudgaJpZM4YPrlA .

-- Mark Hawkins

TheLastProject commented 3 years ago

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 commented 3 years ago

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 commented 3 years ago

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 <notifications@github.com 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 https://github.com/brarcher/loyalty-card-locker/issues/282#issuecomment-436870483, or mute the thread https://github.com/notifications/unsubscribe-auth/ACK2lWh5teMZvHpelzpByv0GeIXNmUnKks5us7RGgaJpZM4YPrlA .

TheLastProject commented 3 years ago

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" gtr33m@gmail.com 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 <notifications@github.com 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 https://github.com/brarcher/loyalty-card-locker/issues/282#issuecomment-436870483, or mute the thread https://github.com/notifications/unsubscribe-auth/ACK2lWh5teMZvHpelzpByv0GeIXNmUnKks5us7RGgaJpZM4YPrlA .

TheLastProject commented 3 years ago

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 commented 3 years ago

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 commented 3 years ago

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 commented 3 years ago

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

cunidev commented 3 years ago

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 commented 3 years ago

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 commented 3 years ago

Not sure I know all, but:

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

muznyo commented 2 years ago

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 commented 2 years ago

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 commented 1 year ago

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.