Giter Site home page Giter Site logo

packlist's Introduction

packlist

License Build Status Github All Releases

An open-source packing list for Android

Why another packing-list... because existing are incomplete, out-of-date or expensive and anyway not open-source. Which is very disappointing when you wish to save your lists and keep your phone out of always running tracking apps.

You can download APK on releases page or get it from them:

Get it on Google Play Get it on F-Droid

Tech note : GitHub and Play Store releases use same certificate. F-Droid uses their own certificate.

Screenshots

Screenshots in english can be found here. They are also available in other languages

One tab screenshot

Objectives in term of functionality :

  • multi-language (currently English , Japanese, Dutch, Chinese, Indonesian, Turkish, spanish and French but please help for others)
  • pre-filling of list through questions on what you are planning to do during your trip

Objectives :

  • free
  • open-source
  • high respect of user privacy: no usage tracker, no automatic crash report, no data uploaded, no permissions see FAQ, "where is data stored"

Objectives in term of coding :

BUT a place for experimentation of up-to-date technology

  • material design
  • android studio 3.1
  • vector drawables, using asset studio
  • android data-binding (http://developer.android.com/tools/data-binding/guide.html)
  • constraint layouts (Work in progress, not yet for all layouts)
  • kotlin (Work in progress, not yet for all files)
  • java 8 code formatting
  • Dagger 2 injection (Work in progress, not yet for all modules)

Licence

Apache 2

Development status

Basic functionality are fresh but working, advanced functionality are being added when asked in issue tracker.

History of release

See detailed changelog in "changelog.xml"

  • 0.13 (18th december 2017) adding support of 5 new languages
  • 0.12 (15th november 2017) improving categories colors, fixing crashes when coming from background
  • 0.11 (25th june 2017) improving categories management
  • 0.10 (21st july 2016) adding categories and item suggestions
  • 0.9 (26th may 2016) adding export, improved sorting, unpacking all, improved accessibility
  • 0.8 ( 9th april 2016) mass import and total weight
  • ...
  • 0.1 alpha ( 6th january 2016)

Want to know more ?

Have a look at doc folder.

packlist's People

Contributors

aitorres avatar naofum avatar nbossard avatar pandermusubi avatar susankenneth avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

packlist's Issues

Remember last used sort mode

It would be nice if the app remembers which sort mode I last used and uses that automatically the next time I open the list.

how about check boxes instead of text?

I find it a little hard to spot unpacked items in the list, because it's all text. Have you considered using check boxes instead? Perhaps full GUI checkbox widgets with their overhead(?) aren't even necessary, if the Unicode support covers enough symbols? In http://www.unicode.org/charts/PDF/U2600.pdf I found U+2610 BALLOT BOX and U+2611 BALLOT BOX WITH CHECK. Perhaps you'd like to give it a try? :-)

(Side note: according to English (and German) typographic rules, there's no space before punctuation, i.e. it should be "PACKED:", not "PACKED :".)

feature request : weight of packed items only

Copy-paste from @nutpantz (issue #13 )

Looks great to start. Two thoughts only
it would be nice to see total weight of packed items not total weight of all list items
(Some things in the list don't always get packed)
Total packed item weight in the trips screen.

Crash when modifying trip after going to background ( reported by Josh Mudge)

java.lang.NullPointerException: Attempt to invoke virtual method 'void com.nbossard.packlist.gui.TripListFragment.populateList()' on a null object reference
at com.nbossard.packlist.gui.MainActivity.onTripChange(MainActivity.java:266)
at com.nbossard.packlist.process.saving.PrefsSavingModule.updateTrip(PrefsSavingModule.java:352)
at com.nbossard.packlist.process.saving.PrefsSavingModule.addOrUpdateTrip(PrefsSavingModule.java:143)
at com.nbossard.packlist.gui.MainActivity.saveTrip(MainActivity.java:328)
at com.nbossard.packlist.gui.TripDetailFragment.onClickAddItem(TripDetailFragment.java:495)
at com.nbossard.packlist.gui.TripDetailFragment.access$700(TripDetailFragment.java:80)
at com.nbossard.packlist.gui.TripDetailFragment$3.onClick(TripDetailFragment.java:305)
at android.view.View.performClick(View.java:4764)
at android.view.View$PerformClick.run(View.java:19844)
at android.os.Handler.handleCallback(Handler.java:739)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:135)
at android.app.ActivityThread.main(ActivityThread.java:5292)
at java.lang.reflect.Method.invoke(Native Method)
at java.lang.reflect.Method.invoke(Method.java:372)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:908)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:703)

Show trip duration

Packing is often directly depending on the number of days/night spend out of the house. I suggest showing this information somewhere. In further iterations, you could even have suggested items+amount based on templates (defined by the user, learned based on previous trip, etc.)

date display is garbled

packlist displays the lists with their date range. Unfortunately, the displayed dates are garbled, the order of year, month, day is not what I configured in the Android settings.

make categories to allow pre building of list

@nutpantz from story #13

I don't pack for different trips as I have a list for the bag based on season and activities
Ie list of swimming gear for a bag, for when I might so swimming
list of winter clothes to take. In winter. Etc.
So the trips screen is really a list of bags or packs for me.

Concerning your activities lists, I think you have the right approach, I am planning to allow user to pre create thematic lists corresponding to his usual activities and then when creating a new trip, user will be asked if he plans to do each activity. New trip will then be pre-filled with an item list corresponding to activities he agreed.

Issue on V0.8.1 Impossible to uncheck boxes

Created based on user report from B.H. ๐Ÿ‘

USER_COMMENT= uncheck of the check โ˜‘ boxes are not possible. Resetting a trip would be great. Thx
REPORT_ID=c512aa88-dbc1-434a-9c64-c1e64949c6ff
APP_VERSION_CODE=12
APP_VERSION_NAME=0.8.1
PACKAGE_NAME=com.nbossard.packlist
FILE_PATH=/data/user/0/com.nbossard.packlist/files
PHONE_MODEL=LG-D802
ANDROID_VERSION=6.0.1

Improve input speed

Suggestion by mr X :
You should take a look at the method 'My Expenses' app employs for adding entries. In it, you press a '+' icon to open a page in which you can add the amount, choose category, make notes, etc., before finally pressing a โˆš sign to save and exit. If you want to just save and make another entry, you press 'โˆš+' that's next to the โˆš icon. Pressing 'โˆš+' automatically clears certain fields so the user can make a new entry quickly. I find this method to be very nifty and fast. Do check it out.

crash : modifying an item... null pointer

Release : 0.8
Occurence : always
Tablet only (seen on Nexus 7 Android 6)

java.lang.NullPointerException: Attempt to read from field 'long java.util.UUID.mostSigBits' on a null object reference
at java.util.UUID.compareTo(UUID.java:323)
at com.nbossard.packlist.process.saving.PrefsSavingModule.loadSavedTrip(PrefsSavingModule.java:102)
at com.nbossard.packlist.process.saving.PrefsSavingModule.updateItem(PrefsSavingModule.java:187)
at com.nbossard.packlist.gui.MainActivity.updateItem(MainActivity.java:216)
at com.nbossard.packlist.gui.ItemDetailFragment$1.onClick(ItemDetailFragment.java:73)
at android.view.View.performClick(View.java:5204)
at android.view.View$PerformClick.run(View.java:21153)
at android.os.Handler.handleCallback(Handler.java:739)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:148)
at android.app.ActivityThread.main(ActivityThread.java:5417)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)

Crashes and toggling not working

It's crashing a lot mainly while toggling an item Tick/untick(toggling) doesn't work if I press back key after that(Tried it with different times between toggling and it just doesn't work)

Crash on v0.8.1 on DatePicker Dialog

User report received from j.p.k.

USER_COMMENT=
REPORT_ID=a3c197de-e9bd-476d-9346-af379c589e2f
APP_VERSION_CODE=12
APP_VERSION_NAME=0.8.1
PACKAGE_NAME=com.nbossard.packlist
FILE_PATH=/data/user/0/com.nbossard.packlist/files
PHONE_MODEL=E5823
ANDROID_VERSION=6.0
BRAND=Sony
PRODUCT=E5823

USER_APP_START_DATE=2016-05-01T13:58:29.216+02:00
USER_CRASH_DATE=2016-05-01T14:00:17.896+02:00
STACK_TRACE=java.lang.IllegalStateException: Fragment already added: DatePickerDialog{8c51ca2 #2 datePickerStart}
at android.support.v4.app.FragmentManagerImpl.addFragment(FragmentManager.java:1323)
at android.support.v4.app.BackStackRecord.run(BackStackRecord.java:675)
at android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1617)
at android.support.v4.app.FragmentManagerImpl$1.run(FragmentManager.java:517)
at android.os.Handler.handleCallback(Handler.java:739)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:224)
at android.app.ActivityThread.main(ActivityThread.java:5514)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)

Sorting the list of items

Please add the functionality to sort the list of items of a trip.
The sorting function should put packed items to the end of the list!

feature request, item weight

I've been looking for a new good packing list app
So I will be watching the development of this app.
Personally I need to have weights added to my list items
With a running total of weight for each list.
Would be nice if there was a luggage group option with weight of all luggage
(Ie a running total of bag, suitcase, carry on separately and together, but I've never seen this before)

These are just ideas when the time comes
And extra great this open source.
Thanks for contributing to the community.

Allow ordering items per category

The items could be assigned to predefined / extendable categories (eg. Clothes, Electronics, Documents, ...) to give a better overview to the user.

New items added hidden under keyboard

Difficult to see new items once there are enough things that they hide under the keyboard in a packlist. It would be better if the most recently added item is visible after entering without having to manually scroll down.

feature suggestion: import of packing list files

I've got a packing list in a text file. It would be nice if I could import it into packlist. (I don't want to type it in again, especially not a smartphone's virtual keyboard.)

(I've actually managed to import it, by finding the PREFS.xml, and exchanging its JSON payload with one I created with a few lines of javascript from the packing list text file I had. Nice hacking exercise, but not recommended for regular use...)

Group items by category on a single card

Suggestion by mister X :
Creating a category card for every item makes the list very lengthy, especially when you have a lot of items to pack. Therefore, I suggest that all items belonging to the same category should be grouped under a single card (see pic). This card can be collapsed/expanded with a single tap if more than one item is listed in it. Do provide an indicator for cards that can be expanded. Also, all the items inside a card should have their own check box. And only after every item in the card has been checked, will the card itself also get checked automatically. Not the other way around. This way the user will not be able to make the mistake of checking the card โ€” thereby automatically checking all the items in it โ€” even though he/she forgot to pack certain items listed in that card.

packlist display jumps to top upon every (un)pack of an item

Whenever I click on an item to mark it as (un)packed, the item list gets scrolled to its top. My list is some four screens long, which means I click, have to scroll down a few screens to get back to where I was, click the next item, scroll down again a few screens, click...
The items are also displayed with a pretty low height, so from time to time I click the wrong one, so I have to do the scrolling down procedure three times for one item.

crash at start on fresh install of v0.10 (empty trip name)

Reported by Olalla, on a brand new install
Android 6.0

STACK_TRACE=java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.String java.lang.String.substring(int, int)' on a null object reference
at com.nbossard.packlist.gui.TripAdapter.getView(TripAdapter.java:174)

This is because the trip name is empty, don't know it is possible.

copy share items between trips, lists.

Many times I have to make a new list similar but not exact to one I use all the time
It would be nice to have simply pick all the things in a list (maybe as packed) then have an option
To send all those things to another trip, or list in a trip as a copy or move function..

I would find this very very useful.

export to readable format

A way to export a list to a readable format would be nice
Something simple like csv or a compressed text file
Both export and import items

Maybe a printable text, html or epub export.
Just for the love of God stay away from pdf.

trip detail optimisation

Suggestion by mr X :
Maximum space should be reserved for items. For that, you should remove the line 'List for. . .' from the action bar. Users already know they're looking at the list for a particular trip. Besides, that line can seen completely only in landscape mode. And I'm pretty sure that most users set portrait mode as their phone's default orientation.

Shift 'edit trip' and 'add item' in the space vacated by 'List for. . .' and replace them with icons. Discard 'more' and also the field for entering names at the bottom.

feature enhancement : crash report tool

As user number grows we definitely need a crash report tool for better understanding non-trivial problems like this encountered by @codesurfer in issue #18.
This tool must at least send:

  • stack trace
    -app logs
  • info about device : version, device manufacturer and model

I have been using fabrics (aka crashlytics) in other projects, it does the job but it is not very "open-source spirit" as it sends unknown data to private company (Twitter).
I would prefer a more simpler tool like Github project ACRA which generates report that can be sent by email see, which prevents adding INTERNET permission. But any other suggestion is welcome...

Allow suggestion of category colour

Suggestion by mister X :
A colour palette to choose colours from for categories. Currently the app sometimes chooses colours that make the text unreadable.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.