getodk / collect

ODK Collect is an Android app for filling out forms. It's been used to collect billions of data points in challenging environments around the world. Contribute and make the world a better place! ✨📋✨
https://docs.getodk.org/collect-intro
Other
714 stars 1.37k forks source link

Add status indicator to show current position in form #616

Closed akshay-ap closed 4 years ago

akshay-ap commented 7 years ago

Software and hardware versions

Collect v1.4.16, Android v4.4.2, device used...

Problem description

While filling form user is unaware of how much part of the form has been filled. The user experience can be improved if there is some indication of much form has been filled.

Steps to reproduce the problem

Choose Fill form button from Main menu of application.

Expected behaviour

Proposed improvement :array of Circular dots to show the current position of form. Below is the exact proposed implementation to be done. The bottom of each form will look like this. feature

screenshot

pratikmjoshi commented 7 years ago

@akshay-ap This can be filed under issue #464, as it is a major ui improvement.

lognaturel commented 7 years ago

@akshay-ap This is a good idea. Collect did previously have a progress bar but it was removed because it turned out to be very confusing with skip logic and repeats. How would you address that?

pratikmjoshi commented 7 years ago

@akshay-ap This is a nice idea as it would provide a good sense of direction for the user. However, I had tried using the circleindicator previously for an app, where data had to be stored as soon as it moved to the next view (just like collect) does, but I couldn't find a way to do so. Since circleindicator is linked to a viewpager, how would you propose to save the data as soon as the current question is swiped away? Also, if we look at FormEntryActivity, views are dynamically created depending on the questions format. How would we know the number of circular dots(or the number of questions) beforehand?

akshay-ap commented 7 years ago

I have thought of adding a popup-window. It will contain Horizontal Linear-layout. Each element will be a circle. I bigger Circle will represent current position of the form which user is filling. On swiping the corresponding circle will be replaced with bigger one and older circle (Bigger one) will be replaced with a smaller one. The popup-window will appear from start (when onResume() method of FormEntryActivity of gets called) of activity and will disappear after onDestroy() method of FormEntryActivity of gets called. This logic will require minimum changes in existing code. But I don't know how to find number of circles needed. Will this logic work? It will look like this at bottom of the page. feature

shobhitagarwal1612 commented 7 years ago

What will happen wih the forms using repeats?

saraswatmanu commented 7 years ago

I would like to point out one thing. The number of questions in a form can get really big in real life. Representing each swipe of question with a circle can be an issue here. Also how will the questions that involve branching logic be tackled? One way I can think of is to group questions somehow and show progress in terms of percentage of questions completed in that group.

grzesiek2010 commented 7 years ago

I have and idea about repeat section. My proposal is to show a second progres bar when user is in repeat section. Then the main progres bar (for all questions) should be stopped and we can show the progres in repeat section using the second prgres bar. That second progres bar should be visible only if we are in repeats of course.

and @saraswatmanu is right of course it should be progres bar.

pratikmjoshi commented 7 years ago

@grzesiek2010 Do you have any examples of a 2-progress bar procedure that you can post a picture of here?

grzesiek2010 commented 7 years ago

No I don't it's only an idea I would prepare a small sketch but not today as I'm busy :)

lognaturel commented 7 years ago

Please do make sure to search issues before filing new ones! This is a duplicate of #72.

lognaturel commented 4 years ago

Close pending a spec.