An open API service indexing awesome lists of open source software.

https://github.com/asimihsan/filbert

Android frontend for ArtiCheck
https://github.com/asimihsan/filbert

Last synced: 3 days ago
JSON representation

Android frontend for ArtiCheck

Awesome Lists containing this project

README

        

Filbert is the Android front-end for ArtiCheck.

TODO

- Prototype wireframe: get colours to match

- Prototype wireframe: get buttons for add/removing.

- Prototype wireframe: get sections populated in-line instead of as section buttons.

- Make a new activity that just makes a list of CRs, i.e. an inventory.

- Icons/symbols drawn on photographs must persist in the database.

- Be able to undo the last drawn symbol. Don't depict this in
a list of previous symbols way for now, just have a single
dumb button.

- Spend 30min refactoring code, making it more maintainable.
Mark as X when done, and every few days re-add as a TODO
task.

- Start a technical document for the internals.

- JavaDoc everything. This is persistent; focus on javadoc'ing
one class at the time, thoroughly.

- Rotate and confirm the condition report becomes the only part
of the screen. Rotate again and confirm we go back to a
list + condition report view.

QUALITY ASSURANCE TESTING

- Fix how the back button works. Test thoroughly at all
stages of the application.

- At every stage of the application go home and then return to the
application and confirm it works.

- At every stage of the application rotate between landscape and
portrait.

BUGS

X Release builds => proguard => crash using GSON because of
something to do with TypeToken and reflection. Either use
Jackson or roll your own function to convert JSONArray to
List.

- !! Pretty sure radio buttons are broken, fix them.

- Right now when using updateContent() to populate the views
we just "select" items, rather than explicitly unselecting
views that aren't specified, e.g. for check boxes. If we call
updateContent() more than once this implies the screen
will not be valid because we're not clearing out unselected
items, or unspecified items.

DONE

X Create a dummy condition report layout with a bunch of text
fields, check boxes, radio buttons, in a scroll view, just
to make sure it works.

X Given a form layout JSON string create a condition report
layout.

X Add ability to represent a type of form with a given media. For
example, if the media is "Painting" then want to have a certain
set of fields, field types, and field values.

Field types:
- Text.
- Checkbox (from fixed set of values).
- Radio group (from fixed set of values).

Represent this data in an SQL table as JSON. Use the JSON to
populate the layout of the condition report from scratch.

X On selection of a given condition report load the correct JSON
string from the SQL table and then create the layout.

X Tabs on top of right-hand pane for CR sections.
+ Implement as buttons, scrollable left-to-right.

x Selecting a condition report will pop open a new list, with e.g.
- Basic info.
- Painting type.
- Noticeable damage.
- Photographs

Some of these list items will depend on what media type you've
selected. These items will be encoded as JSON in the SQL
table somehow (a given media will have several JSON strings,
each helping to populate this list and the condition report).

X Complete the database loop - changes to CR is saved back to the
database every click and onPause(). And make sure all
checkboxes/radio buttons/text fields are populated
from the database.

More difficult than it seems; although selecting a new
condition report does call onPause() a lot of the clicking doesn't,
and it should. Hence the need for background updates. But
don't update on every click, too heavy? Background thread
far more complex, so every click is simpler and better.

But what about text fields? Let's try every update, see
how it goes?

X Make it look pretty. Probably continual task.

X Style the fragments a-la Google I/O 2011 / Gmail.

X Complete CRUD for condition reports; by now RU is done but
need to finish off CD. Use addFooterView() on ListView to add
new CRs, how to delete? Long click + menu?

X Cannot select more than one checkbox, debug and fix.

X Save photographs into some standard location in on-device memory.
Store "file pointers" within SQL database. Save with a thumbnail.

X Make the photograph fragment for a condition report load up
the thumbnails for the CR in a grid-type view. Do not attempt to
load all thumbnails at once; some background task to load and
make it available to the fragment. If a thumbnail isn't loaded
display some placeholder.

X Clicking on a photograph thumbnail loads a new fragment that
contains just the photograph in a bigger view. Still no
annotations.

X Add ability to take photographs using the tablet and associate
them with the current condition report. No editing at this stage.
No storage.

X Rather than cycliing the photograph lock state to draw additional
symbols we let the toolbar buttons lock, and graphically depict
this.