groundapps / shoppinglist Goto Github PK
View Code? Open in Web Editor NEWLicense: Apache License 2.0
License: Apache License 2.0
The app icon is black with transparent background which makes it invisible in the default Android app drawer.
I noticed that it might be better to add a state open|checked or similar to each entry. For example, if I buy something and delete it from the list, someone else with the same list might think, he just forgot it and adds it again. It is not possible to determine if an entry was just not added or if it was resolved.
You already mentioned that the currect swipe to dismiss is not perfect - I agree :-)
My suggestion: swipe to puncture (durchstreichen):
Programatically you have to manage 2 distinct lists:
Of course you could do the same with checkmarks instead of puncture the items text. This is only a question of preference and coding effort.
I think the app should work in offline mode the same way it works in online mode. At the moment offline mode does even not allow to swipe away items - this offline mode is not usable at the moment. In addition, when you start the app while online and you go offline for some reason you get the "cannot connect" error upon first action on your list.
Hi guys (great project, but little lack of documentations),
I previously updated the app from version 1.1 to 1.3!
After restarting the app i wasnt able to create any new entries within my shopping-list and instead received the following message: "Es wurde kein Header mit der Versionsinfo gefunden."
I am still able to open "stored versions".
Furthermore I updated each files of the backend manually - same result.
Finally I deleted my My-SQL-DB and re-ran install.php - unfortunately I am getting the same error-message (see above).
Could you help me, please? I dont know, what else I may be doing wrong!?
The difference seems to be that in version 1.1 I have to put the full url.
Version 1.3 reports that the server refuse the connection, nginx access log shows that the app gets a 403 on the directory, maybe the app doesn't ask for api.php?
Sorry for my bad english and thanks for the app.
https://developer.android.com/guide/topics/ui/controls/radiobutton.html
The scope of radio buttons are pretty clearly not for the usecase of selecting an item from a list. I imagine an ordinary list would work for the purposes of selecting an item.
I'm using OI-ShoppingList for many years now but I like your idea of a synchronized list across multiple devices and using own servers. I really would like to make this project really useful. Here is my first out of multiple suggestions:
When I prepare my shopping list I like to open up my favorites list and while I'm looking around (e.g. in the refrigerator) I select what I need to buy. When I'm done I click on "OK" and all items are copied to the shopping list at once. After that I modify some items count numbers (this is already implemented but not optimal - see my next suggestion issue).
So I suggest to replace the select boxes with checkboxes to allow multiple selection.
The Floating Action Button should react to the Snackbar with a Coordinator Layout, not with a timer. Right now it gets pushed to far up when multiple actions occur.
Ok, you create a List.
There is a user that down have access to your Server, so you want to share the list.
Then you can select how => Mail, WhatsApp, etc
He get a simpel Message in this format:
List
[ ] Eggs
[ ] Meat
[ ] Pasts
He will not see it as a list, only as a simple TextMessage
Same as #9 .
Hello,
I set up the Server and the App with the write MySQL Config and in the App with the API and Link.
But the only info I get is:
No Data
None of the preferences has a translation
Please make it harder to delete all of the items on the list! As of right now an accidental press of the top-right button can wreck the list that I've been building. It's too easy to press: It should have either have an undo toaster popup or a confirmation dialogue.
List wont load when starting the app. Placed the getList() command in the wrong place.
Firstly I just wanted to say that it's fantastic to see a FOSS shopping list app for Android with a self-hosted syncing solution!
My issue is that when I upgraded to version 1.1 of the app, I received an error when trying to display the list of items: "The response did not make sense: " followed by a JSON string of the items in the database. I have since upgraded to a fresh install of the latest backend (version 0.3 / commit 6729fbc) and also uninstalled and then reinstalled and reconfigured the app, but I am still receiving the error, although now with an empty JSON string due to the fresh install of the backend: "The response did not make sense: []"
When accessing the API directly and passing function=listall along with the appropriate auth key, I can confirm that it is just returning []
but I assume this is expected behavior from a backend with a fresh database (SQLite FWIW).
I am a PHP developer and would love to help out with the backend if I can, but this seems like it might be an issue with the app. Please let me know if there is any further information that might be helpful or if I can provide assistance in any way.
App version 1.1 crashes if the server returns a non empty list from function = listall.
The exact server output that crashes the app is: {"type":1000,"items":[{"item":"item2","count":1}]}
.
EDIT: Stacktrace: E/AndroidRuntime﹕ FATAL EXCEPTION: main Process: org.janb.shoppinglist, PID: 26665 java.lang.NullPointerException: Attempt to invoke virtual method 'boolean java.lang.Boolean.booleanValue()' on a null object reference at org.janb.shoppinglist.model.ShoppingListAdapter.getView(ShoppingListAdapter.java:63) at android.widget.AbsListView.obtainView(AbsListView.java:2347) at android.widget.ListView.makeAndAddView(ListView.java:1864) at android.widget.ListView.fillDown(ListView.java:698) at android.widget.ListView.fillFromTop(ListView.java:759) at android.widget.ListView.layoutChildren(ListView.java:1659) at android.widget.AbsListView.onLayout(AbsListView.java:2151) at android.view.View.layout(View.java:15671) at android.view.ViewGroup.layout(ViewGroup.java:5038) at android.support.v4.widget.SwipeRefreshLayout.onLayout(SwipeRefreshLayout.java:562) at android.view.View.layout(View.java:15671) at android.view.ViewGroup.layout(ViewGroup.java:5038) at android.widget.FrameLayout.layoutChildren(FrameLayout.java:579) at android.widget.FrameLayout.onLayout(FrameLayout.java:514) at android.view.View.layout(View.java:15671) at android.view.ViewGroup.layout(ViewGroup.java:5038) at android.support.design.widget.CoordinatorLayout.layoutChild(CoordinatorLayout.java:1009) at android.support.design.widget.CoordinatorLayout.onLayoutChild(CoordinatorLayout.java:719) at android.support.design.widget.CoordinatorLayout.onLayout(CoordinatorLayout.java:733) at android.view.View.layout(View.java:15671) at android.view.ViewGroup.layout(ViewGroup.java:5038) at android.widget.FrameLayout.layoutChildren(FrameLayout.java:579) at android.widget.FrameLayout.onLayout(FrameLayout.java:514) at android.view.View.layout(View.java:15671) at android.view.ViewGroup.layout(ViewGroup.java:5038) at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1703) at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1557) at android.widget.LinearLayout.onLayout(LinearLayout.java:1466) at android.view.View.layout(View.java:15671) at android.view.ViewGroup.layout(ViewGroup.java:5038) at android.widget.FrameLayout.layoutChildren(FrameLayout.java:579) at android.widget.FrameLayout.onLayout(FrameLayout.java:514) at android.view.View.layout(View.java:15671) at android.view.ViewGroup.layout(ViewGroup.java:5038) at android.support.v4.widget.DrawerLayout.onLayout(DrawerLayout.java:907) at android.view.View.layout(View.java:15671) at android.view.ViewGroup.layout(ViewGroup.java:5038) at android.widget.FrameLayout.layoutChildren(FrameLayout.java:579) at android.widget.FrameLayout.onLayout(FrameLayout.java:514) at android.view.View.layout(View.java:15671) at android.view.ViewGroup.layout(ViewGroup.java:5038) at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1703) at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1557) at android.widget.LinearLayout.onLayout(LinearLayout.java:1466) at android.view.View.layout(View.java:15671) at android.view.ViewGroup.layout(ViewGroup.java:5038) at android.widget.FrameLayout.layoutChildren(FrameLayout.java:579) at android.widget.FrameLayout.onLayout(FrameLayout.java:514) at android.view.View.layout(View.java:15671) at android.view.ViewGroup.layout(ViewGroup.java:5038) at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1703) at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1557) at android.widget.LinearLayout.onLayout(LinearLayout.java:1466) at android.view.View.layout(View.java:15671) at android.view.ViewGroup.layout(ViewGroup.java:5038) at android.widget.FrameLayout.layoutChildren(FrameLayout.java:579) at android.widget.FrameLayout.onLayout(FrameLayout.java:514) at android.view.View.layout(View.java:15671) at android.view.ViewGroup.layout(ViewGroup.java:5038) at android.view.ViewRootImpl.performLayout(ViewRootImpl.java:2086) at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1843) at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1061) at android.view.ViewRootImpl$TraversalRunnabl
Fresh install of the app. Fresh git clone. I enter the authentication in the app. Going to .../install.php on the server, I filled in the details (I'm using sqlite). When trying to connect, the app shows me the following error.
"The response did not make sense "Notice: Undefined index: item in /var/www/............./ShoppingList_backend/api.php on line 11 Notice: Undefined index: count in /var/ww""
The rest of the error is cut off.
From using Wireshark with the filter "http.method == "POST"" at the same time, I can see that the POST being sent is auth=.... and function=listall. So that seems OK.
How can I help debugging this?
Latest tag is v1.2, but build.gradle still says versionCode 2
and versionName "1.1"
.
I have been using ShoppingList on my phone for a while now and adding favourite items. Cool!
I recently installed it to our other devices , but when I go to add a favourite item on these new devices it shows 'You have no favourites yet - add some!'
Are the favourites only stored locally on each device ?
Could these favourite items also be sync'ed and stored on the server ?
Thanks.
When I start the app in landscape mode and turn my phone to portrait mode the app crahes. Same behavior when I switch from portrait to landscape mode.
presently, I must put https://MYHOST.com/sholi/api.php exactly. I cannot omit the https:// and I cannot omit the api.php. The sub-text of the item says "the location of api.php", which makes me think that I should put the folder in which api.php resides, not to put the exact path in.
It should not care whether https://, http://, or whatever is preceding the address, and it should be clearer as to whether it expects an exact path or not.
It might be best design to default to an unspecified quantity that does not show in the list: Only when multiples are needed (and specified by the user) will a number show up. Otherwise, there's a bunch of 1s on the list that clutter up the interface and make it more difficult to discern when multiples are needed.
Thanks for the great app! I love it!
Is it possible to make the app compatible to lower api levels (my personal wish would be 18 ;) )?
When using trolly
there is one (and perhaps only one ;)) advantage against this application: it remembers all items ever entered and suggests them for completion. So, currently, I don't have to type more than a few characters for frequently bought items (e.g., just 'ml' for 'mléko” (milk in Czech)).
No German translation for Category 'Predictions' and Preference 'Clear Predictions'
It would be nice if once the items had been picked up and put into the basket you could use a swipe-to-the-right gesture to slide the item off the screen.
This way the font could stay nice and readable , the list would be reduced as the shopping is done and unavailable items would be left behind on the list for the next shopping trip or store.
This may have been fixed in client version > 1.0 but I couldn't get version 1.1 to work.
A different DrawerAdapter is necessary to deal with dynamic lists.
Realted to #5 .
When deleting an item, it is not removed from the list. Only after reloading the list it is gone.
When creating an new item keyboard should pop up automatically. At the moment I have to touch on "Artikel" (I'm from germany).
The same applies to when I want to modify the count value for an item on the list. At the moment I have to touch on the "number" to get the keyboard. Keyboard should pop up automatically AND the current value should be preselected, so when I enter "2" I get "2". At the moment I get "12" because cursor is behind the current value.
Offer the possibility to scan a QR code to automatically configure app.
Also give the option to display current config as QR code to scan for other users.
The icon is basically invisible on my dark space wallpaper. :)
Not a big deal but including some lighter parts in the icon (for example lighter pixels around all dark pixels) would make it look ok on light as well as dark backgrounds.
Maybe you can add a function to add more lists
Especially on a phone, it is too easy to make (especially, when my wife has MS and her hands are a bit shakey). How can I edit the text of an item?
Please add a Readme with some screenshots :)
Implement a check if the backend can be updated and/or if security related issues have been fixed.
Add a checkbox to disable notifications.
an item can currently only be added to favourites when creating it.
if user realizes that an already existing item should be a favourite there's no way to mark it.
please add the "favourites" star to the edit list item dialog.
When using this phone the phone try indefinitely to download the shopping list. There is no error message. It's not a server problem because it run well with another phone and the same parameters.
Implement different kind of feedback to replace generic toast messages.
I think it would be helpful to have buttons that one could press to increment/decrement the number of items needed. That way one does not have to tap on the number box, wait for the keyboard to pop up, hit backspace, and then press the number desired.
Height of a row is unnecessarily big. It would be good to make it smaller to fit more items without scrolling.
Lower priority: It would be nice to have an option for the dark/black theme for OLED displays
Error messages are vague and missleading. They should be more specific on the actual error. Including errors with the backend.
Do not use swipeView but rather longClick to give the option to delete favorite in favorite list
I'm getting "The server did not send any content back. Likely due to an internal server error"
The weird thing is: I press "retry", and while the connection is being retried, I can quicly add a "new entry". That item is then correctly added to the "shoppinglist.sqlite" file. But I still get above error message.
I'm used to sort my list by shelfs. So when I go through my favorite supermarket I don't have to scroll up and down. Implementation is quiet easy:
Shoes
Toys
1 Bred
1 Coffee
1 Marmelade
2 Chips
2 Chocolate
3 Juice
Programatically you could treat shelf-number "0" as "no shelf number". So sorting becomes very easy by "shelf number" starting from 0 + alphabetically. When displaying the list just hide "0" so those items seem to have no shelf number. In the item creation dialog you could preset the field with 0.
Sorting of the favorites list should not take shelf numbers into accounts: so just alphabetically here.
In the android app, under "settings", the comment underneath "AuthKey" reads now
Please provide your authentication token (defined in api.php)
But shouldn't it be:
Please provide your authentication token (defined in config.php)
Very nice project. Thank you.
I am stuck using a self-signed certificate because I use a home server. Can you please give the option to accept a self-signed certificate? It works if I install the certificate to the device but that is not an option in some cases.
Thank you!
I have a couple of things that I dont think are perfect such as the swiping to dismiss. I don't think it works that well.
My idea / suggestion:
Also if anyone has any idea for a more elegant icon, I would be happy to hear! :)
Maybe it would be a good idea to have the option to remove items while offline.
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.