Giter VIP home page Giter VIP logo

cooperka / collect Goto Github PK

View Code? Open in Web Editor NEW

This project forked from getodk/collect

0.0 0.0 0.0 42.78 MB

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! โœจ๐Ÿ“‹โœจ

Home Page: https://docs.opendatakit.org/collect-intro

License: Other

Java 94.63% HTML 0.40% JavaScript 0.10% XSLT 4.87%

collect's People

Watchers

 avatar  avatar

collect's Issues

Nicer looking, more consistent form/instance lists

Resources

General goal

  • To make form and instance lists look nicer, be more consistent, and be more intuitive to use
  • To conform to Material Design specs as much as possible
  • To do this while making minimal changes to the current UI

Mockup of new UI

Mockup of new UI

Proposed implementation

Add left-aligned icons to every screen that shows a list of forms. This includes:

  • Fill Blank Form
  • Edit Saved Form
  • Send Finalized Form
  • View Sent Form
  • Get Blank Form
  • Delete Saved Form: Saved Forms
  • Delete Saved Form: Blank Forms

The icons will change depending on the form/instance state to make it more clear to users what state the form is in:

Icon Icon description Form state Screens it appears on
clip-blank Empty clipboard Blank Fill Blank Form
Get Blank Form
Delete: Blank Forms
clip-text Clipboard with lines Incomplete Edit Saved Form
Delete: Saved Forms
clip-pkg Clipboard with "package" overlay Finalized Edit Saved Form
Send Finalized Form
Delete: Saved Forms
clip-send Clipboard with "send" overlay Sending* Edit Saved Form
Send Finalized Form
Delete: Saved Forms
clip-check Clipboard with "check" overlay Submitted Send Finalized Form
View Sent Form
Delete: Saved Forms
clip-error Clipboard with "error" overlay Failed to submit Send Finalized Form
Delete: Saved Forms

* The "sending" icon is optional; the current Send Finalize Form UI includes this icon, but it's redundant with the progress bar. It can either be kept for consistency or removed for simplicity.

Changes to existing screens

  • Most screens: Simply add icons to the left of each row as described above
  • Send Finalized Form screen: More signifcant change, because it currently looks different from the rest (see below); it would once again be consistent after this change

Existing Send Finalized Form screen

Existing screen

Icon details

The only icons that are currently used to indicate form state are on the Send Finalized Form screen (screenshot above). We took the existing "check" and "error" icons from there and added the clipboard to unify them into the icon set for this proposal.

The new icons use Material Design's 54% black for the base icon color, and blue/green/red A700 for overlay colors.

Current icons

If you want to examine the code, icons are currently used in InstanceUploaderAdapter.

For regular submissions:

    case STATUS_SUBMISSION_FAILED:
        R.drawable.exclamation;

    case STATUS_SUBMITTED:
        R.drawable.check;

    default:
        R.drawable.pencil;

For SMS submissions:

    case Activity.RESULT_OK:
        R.drawable.check;

    case RESULT_QUEUED:
    case RESULT_OK_OTHERS_PENDING:
    case RESULT_SENDING:
    case RESULT_MESSAGE_READY:
        R.drawable.message_text_outline;

    default:
        R.drawable.exclamation;

Known variants

The following are all the possible states for form instances (public vars from InstanceProviderAPI):

  • (blank form, not yet an instance)
  • STATUS_INCOMPLETE
  • STATUS_COMPLETE (i.e. finalized)
  • STATUS_SUBMITTED
  • STATUS_SUBMISSION_FAILED

The following are all the possible states for SMS submissions (public vars from SmsService):

  • RESULT_QUEUED
  • RESULT_OK_OTHERS_PENDING
  • RESULT_INVALID_GATEWAY
  • RESULT_MESSAGE_READY
  • RESULT_SENDING

The table at the beginning covers each of these states.

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.