patzly / grocy-android Goto Github PK
View Code? Open in Web Editor NEWERP beyond your fridge, now on your phone – An awesome companion app for grocy
Home Page: https://patrickzedler.com/grocy/
License: GNU General Public License v3.0
ERP beyond your fridge, now on your phone – An awesome companion app for grocy
Home Page: https://patrickzedler.com/grocy/
License: GNU General Public License v3.0
When 1 Pack (unit) of a Product is added. 0.5 Pack cannot be consumed. The Web interface though allows to do so. Do i miss something?
Hi,
Can you improve the display with the info (days, numbers ...) on the empty part on the right?
It allows you to display more products without scrolling. On my tablet I only have 3 products in landscape mode.
Because startActivityForResult
is deprecated now.
Documentation:
https://developer.android.com/training/basics/intents/result
Hi there,
I am currently having trouble to switch to dark mode. As soon as I do, the app crashes and cannot be opened again. I have to delete all data from it through the phone to start over and have to set it up all again. Did check it multiple times but it was always the same.
Let me know what information is needed, so I will be able to send them to help.
Thanks!
Instead of using different cases in code you can simply use plurals for these strings:
1 day
%1$d days
As they appear in the following function:
https://github.com/patzly/grocy-android/blob/master/app/src/main/java/xyz/zedler/patrick/grocy/util/DateUtil.java#L117
Better use the plural option as explained here:
https://developer.android.com/guide/topics/resources/string-resource#Plurals
Due to the usage of RecyclerView inside NestedScrollView
Implement documentation-like help activity with descriptions of workflows, such as
Also refer to the help tooltips when long-pressing buttons!
Hi,
I have a FATAL exception:
FATAL EXCEPTION: main
Process: xyz.zedler.patrick.grocy, PID: 23073
java.lang.RuntimeException: Unable to start activity ComponentInfo{xyz.zedler.patrick.grocy/xyz.zedler.patrick.grocy.ScanBatchActivity}: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.view.View.setVisibility(int)' on a null object reference
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2684)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2751)
at android.app.ActivityThread.-wrap12(ActivityThread.java)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1496)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:154)
at android.app.ActivityThread.main(ActivityThread.java:6186)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:889)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:779)
at de.robv.android.xposed.XposedBridge.main(XposedBridge.java:107)
Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.view.View.setVisibility(int)' on a null object reference
at xyz.zedler.patrick.grocy.ScanBatchActivity.onCreate(:2)
at android.app.Activity.performCreate(Activity.java:6684)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1119)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2637)
... 10 more
Android version: 7.1.2
grocy is being translated using Transifex, is there any chance we'll try to contact grocy's maintainer and ask him to add this project to the Transifex project?
https://www.transifex.com/grocy/grocy/
I'd love to help both sides if needed.
Hi,
I don't know if it's easy to automatically scan a date from a photo capture. In any case I add this idea because when we do a lot of shopping, it takes a long time to put all the dates.
Best regards,
Contrast of labels on buttons or chips and their background is too low.
Check with contrast checker and make some changes to the theme colors, at least the ones with text on it, for improved accessibility.
Ability to switch to front camera (and set as default). For example when using wall mounted tablet.
Hi,
The app looks amazing, and works great in demo mode!
When I want to enter my own server details however, it force closes on me.
I tried local urls and my reverse proxy URL, with and without /api added to the URL.
The reverse proxy URL is the only one that seems to be accepted, but when loading the next screen the app force closes after 1 second.
My url format is : https://grocy.mydomain.com
I'm using a OnePlus 5T with android version 9.
Any ideas? :)
When I am trying to consume certain products or open products by using the barcode-button on the front, the app gives me an error even though the product is in stock, the barcode is linked and everything should be fine.
If I manually find the product and consume it, it is no problem.
It is not an consistent error, so it is hard to tell why this happens. I have no connection issues while using the app, so I think it should be good.
Here's a request I find very handy to have in an app like this which I also found eg. in the official Home Assistant app: Distinguish between local and remote network.
In the HA app I can tell the name of the local WiFi network and once connected the app uses the local address. Whenever I am not connected to that local WiFi network I can enter a second address (usually the one exposed to the internet) and the connection will be established through this address.
This way, whenever being at home it's possible to run all local and no internet connection is required at all. Comes in handy if the WAN connection is failing and you still need to adjust things. Also in the case of using the app at home it does not make much sense to have traffic from the grocy installation send to the internet and get it back into the same network to the app.
It would be awesome to integrate this option (perhaps similar to how the HA app has integrated it?).
Thanks a lot!
For example, I have a product setup with the Quantity Unit Purchase set to Pack and the Quantity Unit Stock set to Pieces with a factor of 4, however when I scan the barcode in the app to purchase it only adds 1 to stock instead of 4.
The consume behavior is as expected, only consuming one at a time (however, perhaps a custom field set to how much default consume should be per product would be useful for products like flour where scanning every time for every gram used would be inconvenient.)
When you are using the purchase function and then enter a period in the purchase price field the app Crashes and closes out. The app is fine if you type a number first followed by a period but not the period first.
Hi,
Thanks for this awesome work.
I want to know if you intend to fully support offline mode ?
Til now, I think you're supporting only offline mode for shopping list.
Kind regards.
Also rearange the buttons and improve the layout
I've just found Grocy after it showed up in the IzzyOnDroid F-droid repo, and absolutely fell in love with the design. Unfortunately, I currently don't have the means to run a self-hosted instance. Would it be possible in the future to add an option to just use the app with a local database stored on my device?
Add a delay before the bar is hidden to prevent "hide-show-flickering".
Specifically:
24dp
, then hide itI scan the barcode of something I use and want to register... it doesn't let me "link".
I can help translate it to Norwegian if you want.
Hi,
I have a error on the login page: An error occured. This error is not clear. No problem with a browser and the api key is correct.
My URL server is http://192.168.x.x:8080, tested also without http://.
Do you know this issue ?
To test offline mode I opened the shopping list in the app and then I disabled wifi. I got a message that I am in offline mode. I checked some elements in the list. After enabling wifi again and reloading the shopping list It does not load anymore. The rest of the app is usable as before.
App Version is 1.5.0
Grocy Version is 2.7.1
In the web interface we get quantity unit purchase, in the app it results in quantity unit stock, as a user reported with email.
I can't reproduce this behavior with eggs on the demo instance, maybe with another product.
Could you please sign the APK attached to releases/
? I currently get a signature error with apksigner
(could be only v2 signature is missing, I'm not sure). Thanks!
Scanning, shopping list in shopping mode, etc are all impossible and now result in instant app crashes.
Some positions of text are not mirrored and not correctly aligned when forcing RTL layout (or using RTL languages).
Docs: https://material.io/design/usability/bidirectionality.html#mirroring-layout
Hello,
I really like your app and have been using it for a few weeks!
For now, I am using it for checking existing inventory.
I would like to also use the shopping list feature in the store when I am shopping.
Right now, I think the existing UI is too small when using the phone in one hand and carrying a bag or shopping cart in the other.
The 'checking off' swipe is not ideal in my opinion.
Besides Grocy I am using the Bring shopping list app which has a very nice UX with big touchable tiles.
Do you have plans to improve the design?
I think an easy first improvement would be changing the ListView somehow to display the names of products in touchable rectangles.
In the future, you could also integrate product images.
Thanks again for your effort in developing this!
This makes the app very difficult to use in a store when you are looking down your list and it just skips back to the top.
Hello,
Can you implement french or other langage in this app ?
Thank you
Mobile coverage in most supermarkets I know is terrible. Therefore the app is currently unusable for shopping under these circumstances. It would be great if a cached version of the shopping list could be kept in the app to be synced at a later time.
Thank you for this app! I found it on F-Droid and discovered grocy through it. This whole ecosystem looks very promising and you guys seem to be developing at a rapid pace.
After setting up grocy for the best part of the day I was a little disappointed when I took the app shopping today. Luckily I had a hand-written backup of my list :)
Your app is such a great companion to for the grocy web app! I use grocy on a repurposed server laptop and the mobile app as the front end.
I have an idea for a new feature: It would be nice if the app can show notification alerts when some products will be expiring in a few days.
Thank you for the app!
An Open Source Android Apps Store:
https://f-droid.org/
This is how it's done:
https://f-droid.org/en/docs/FAQ_-_App_Developers/#how-do-i-get-my-app-included
Hi
Thanks a lot for your great application.
Do you consider to implement a solution base on a bluetooth barcode scanner in stead of the camera ?
Regards
Frédéric
Hi. I just wanted to try out your app but I cannot enter the URL to grocy.
The URL is http://grocy
but the regular expression you used enforces at least one colon. As per RFC 1735 the colon (and the trailing slash) are not required in a valid host.
This seems to be an issue with a library as I regularly see apps with this problem. Would you mind updating the validation?
Thank you in advance! really looking forward to trying out your app!
edit: It seems to happen here:
isHttpUrl(url)
is so simple and only checks the first few characters, so it should not be the source of the problem. (https://android.googlesource.com/platform/frameworks/base/+/refs/heads/master/core/java/android/webkit/URLUtil.java#234)
This approach used by FairEmail is better because long texts no longer need to be translated (that was unnecessary IMHO).
Thanks to markdown anchors, specific sections can also be opened in a customtabs browser.
String url = "https://grocy.info/";
CustomTabsIntent.Builder builder = new CustomTabsIntent.Builder();
CustomTabsIntent customTabsIntent = builder.build();
customTabsIntent.launchUrl(this, Uri.parse(url));
Only product name could be used, get it from barcode.
Problem: names in the database are very long, the line breaks would be ugly in the app.
Most names contain the brand, exact product name and possible variant identification, way too much information for a clean management in Grocy.
Hi,
First thank you for this awesome app. I'm currently loving it on my Android device but to be able to replace commercial competitor, I need an iOS app for my wife.
Is it something you're planning and is there a way I can contribute? (I'm kinda nerdy, but not a programmer) I would love to help you either, documentation, translation, beta testing, how-tos or even donation. FYI, my mother-tong is French in case this could help. :)
Thank you.
Ungrouped items should also be sorted alphabetically like the grouped ones.
Required to change location of products
Issue with ip field on first setup that seemingly prevents a port from being specified
I want to first say that I really like UX design of the app. I am getting this error after second time I run the app.
06-18 08:00:26.988 E/AndroidRuntime(2131): java.lang.NullPointerException: Attempt to invoke virtual method 'android.view.Menu xyz.zedler.patrick.grocy.MainActivity.H()' on a null object reference
It works when I clear the storage.
Hi,
Can we use self-signed certificates with Grocy?
I don't have the impression:
java.security.cert.CertPathValidatorException: Trust anchor for certification path not found
Hi! I'm using version 1.8.0 from F-Droid (Izzys Repo). Server is running version 2.7.1
In the menu I can tap "masterdata" and then "products". All fine. When tapping on any product the app crashes.
Adding new products works fine. The problem only occurs when editing existing ones.
This happens on three different devices with different Android versions.
Don't rotate the whole activity, only animate the orientation for the buttons if possible.
Grocy-android login failed
docker
Add-on: Grocy version: 0.9.0
Grocy-andoid Setting
Server URL
https://domain:port/ ->Not a avalid grocy instance
https://domain:port/a0d7b954_grocy ->Not a avalid grocy instance
https://domain:port/hassio/ingress/a0d7b954_grocy ->Not a avalid grocy instance
Is there anything to add?
[30/Jul/2020:11:03:27 +0900] 302 175.204.18.12, 172.30.32.1(172.30.32.2) GET / HTTP/1.1 (Mozilla/5.0 (Linux; Android 8.0.0; SM-C9000) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.106 Mobile Safari/537.36)
[30/Jul/2020:11:03:30 +0900] 200 175.204.18.12, 172.30.32.1(172.30.32.2) GET /stockoverview HTTP/1.1 (Mozilla/5.0 (Linux; Android 8.0.0; SM-C9000) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.106 Mobile Safari/537.36)
[30/Jul/2020:11:03:31 +0900] 204 175.204.18.12, 172.30.32.1(172.30.32.2) PUT /api/user/settings/auto_night_mode_enabled HTTP/1.1 (Mozilla/5.0 (Linux; Android 8.0.0; SM-C9000) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.106 Mobile Safari/537.36)
[30/Jul/2020:11:03:31 +0900] 200 175.204.18.12, 172.30.32.1(172.30.32.2) GET /api/system/db-changed-time HTTP/1.1 (Mozilla/5.0 (Linux; Android 8.0.0; SM-C9000) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.106 Mobile Safari/537.36)
[30/Jul/2020:11:03:34 +0900] 200 175.204.18.12, 172.30.32.1(172.30.32.2) GET /api/stock HTTP/1.1 (Mozilla/5.0 (Linux; Android 8.0.0; SM-C9000) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.106 Mobile Safari/537.36)
[30/Jul/2020:11:03:34 +0900] 200 175.204.18.12, 172.30.32.1(172.30.32.2) GET /api/stock/volatile?expiring_days=5 HTTP/1.1 (Mozilla/5.0 (Linux; Android 8.0.0; SM-C9000) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.106 Mobile Safari/537.36)
[30/Jul/2020:11:04:05 +0900] 302 222.118.116.194, 172.30.32.1(172.30.32.2) GET / HTTP/1.1 (Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.89 Safari/537.36)
[30/Jul/2020:11:04:09 +0900] 200 222.118.116.194, 172.30.32.1(172.30.32.2) GET /stockoverview HTTP/1.1 (Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.89 Safari/537.36)
[30/Jul/2020:11:04:10 +0900] 200 222.118.116.194, 172.30.32.1(172.30.32.2) GET /api/system/db-changed-time HTTP/1.1 (Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.89 Safari/537.36)
[30/Jul/2020:11:04:10 +0900] 204 222.118.116.194, 172.30.32.1(172.30.32.2) PUT /api/user/settings/auto_night_mode_enabled HTTP/1.1 (Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.89 Safari/537.36)
[30/Jul/2020:11:04:12 +0900] 200 222.118.116.194, 172.30.32.1(172.30.32.2) GET /api/stock HTTP/1.1 (Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.89 Safari/537.36)
[30/Jul/2020:11:04:13 +0900] 200 222.118.116.194, 172.30.32.1(172.30.32.2) GET /api/stock/volatile?expiring_days=5 HTTP/1.1 (Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.89 Safari/537.36)
[30/Jul/2020:11:04:32 +0900] 200 175.204.18.12, 172.30.32.1(172.30.32.2) GET /api/system/db-changed-time HTTP/1.1 (Mozilla/5.0 (Linux; Android 8.0.0; SM-C9000) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.106 Mobile Safari/537.36)
[30/Jul/2020:11:04:36 +0900] 200 175.204.18.12, 172.30.32.1(172.30.32.2) GET /stockoverview HTTP/1.1 (Mozilla/5.0 (Linux; Android 8.0.0; SM-C9000) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.106 Mobile Safari/537.36)
[30/Jul/2020:11:04:40 +0900] 200 175.204.18.12, 172.30.32.1(172.30.32.2) GET /api/system/db-changed-time HTTP/1.1 (Mozilla/5.0 (Linux; Android 8.0.0; SM-C9000) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.106 Mobile Safari/537.36)
[30/Jul/2020:11:04:40 +0900] 204 175.204.18.12, 172.30.32.1(172.30.32.2) PUT /api/user/settings/auto_night_mode_enabled HTTP/1.1 (Mozilla/5.0 (Linux; Android 8.0.0; SM-C9000) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.106 Mobile Safari/537.36)
[30/Jul/2020:11:04:45 +0900] 200 175.204.18.12, 172.30.32.1(172.30.32.2) GET /api/stock/volatile?expiring_days=5 HTTP/1.1 (Mozilla/5.0 (Linux; Android 8.0.0; SM-C9000) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.106 Mobile Safari/537.36)
[30/Jul/2020:11:04:45 +0900] 200 175.204.18.12, 172.30.32.1(172.30.32.2) GET /api/stock HTTP/1.1 (Mozilla/5.0 (Linux; Android 8.0.0; SM-C9000) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.106 Mobile Safari/537.36)
[30/Jul/2020:11:05:41 +0900] 200 175.204.18.12, 172.30.32.1(172.30.32.2) GET /api/system/db-changed-time HTTP/1.1 (Mozilla/5.0 (Linux; Android 8.0.0; SM-C9000) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.106 Mobile Safari/537.36)
[30/Jul/2020:11:05:45 +0900] 200 175.204.18.12, 172.30.32.1(172.30.32.2) GET /stockoverview HTTP/1.1 (Mozilla/5.0 (Linux; Android 8.0.0; SM-C9000) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.106 Mobile Safari/537.36)
[30/Jul/2020:11:05:46 +0900] 204 175.204.18.12, 172.30.32.1(172.30.32.2) PUT /api/user/settings/auto_night_mode_enabled HTTP/1.1 (Mozilla/5.0 (Linux; Android 8.0.0; SM-C9000) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.106 Mobile Safari/537.36)
[30/Jul/2020:11:05:47 +0900] 200 175.204.18.12, 172.30.32.1(172.30.32.2) GET /api/system/db-changed-time HTTP/1.1 (Mozilla/5.0 (Linux; Android 8.0.0; SM-C9000) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.106 Mobile Safari/537.36)
[30/Jul/2020:11:05:49 +0900] 200 175.204.18.12, 172.30.32.1(172.30.32.2) GET /api/stock HTTP/1.1 (Mozilla/5.0 (Linux; Android 8.0.0; SM-C9000) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.106 Mobile Safari/537.36)
[30/Jul/2020:11:05:52 +0900] 200 175.204.18.12, 172.30.32.1(172.30.32.2) GET /api/stock/volatile?expiring_days=5 HTTP/1.1 (Mozilla/5.0 (Linux; Android 8.0.0; SM-C9000) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.106 Mobile Safari/537.36)
[30/Jul/2020:11:06:47 +0900] 200 175.204.18.12, 172.30.32.1(172.30.32.2) GET /api/system/db-changed-time HTTP/1.1 (Mozilla/5.0 (Linux; Android 8.0.0; SM-C9000) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.106 Mobile Safari/537.36)
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.