501e27f
Switch to guava Optional for older Android
Stephen Paul Weber created
501e27f
Switch to guava Optional for older Android
Stephen Paul Weber created
095343a
NPE from context menu
Stephen Paul Weber created
9292bd1
Merge branch 'bob1'
* bob1: Preliminary support for bits-of-binary
Stephen Paul Weber created
34dd66c
Preliminary support for bits-of-binary
https://xmpp.org/extensions/xep-0231.html When a CID URI is received as part of an OOB, use bob to fetch from the sender. This does not verify the hash at this time, nor does it "cache" for a future send since our storage is not content-addressable yet.
Stephen Paul Weber created
18e81af
Merge branch 'commands'
* commands: (50 commits) Tell the server we have a UI that can handle up to 1000 items For very long lists, use a searchable list view Use a list item background that can handle being selected Allow nested scrolling of ListView and WebView NPE Show any commands pushed along with a message Allow oob webview to move the execution forward Spinner when loading list of commands Show spinner when loading if it takes awhile Menu item to refresh features for a contact Order cells by reported order Look more like a real web browser Don't submit the form when cancelling We can still proceed with no form, just don't send a form Validate presence of required fields DRY up common patterns for fields Refactor to bind to an Item container, not just a raw Element Use more features of the TextInputLayout Support more text field types Support reported/item tables ...
Stephen Paul Weber created
4cc7069
Tell the server we have a UI that can handle up to 1000 items
Stephen Paul Weber created
99a92ca
For very long lists, use a searchable list view
Stephen Paul Weber created
dce0d82
Use a list item background that can handle being selected
Stephen Paul Weber created
5ea0c8c
Allow nested scrolling of ListView and WebView
Stephen Paul Weber created
69ce46f
NPE
Stephen Paul Weber created
eb8b8d6
Show any commands pushed along with a message
Stephen Paul Weber created
9dc579d
Allow oob webview to move the execution forward
Stephen Paul Weber created
c5e8ca4
Spinner when loading list of commands
Stephen Paul Weber created
4ba4e7a
Show spinner when loading if it takes awhile
Stephen Paul Weber created
2142fed
Menu item to refresh features for a contact
Shouldn't be needed in general, so hidden under a sub-menu, but for advanced use cases and especially services without caps, can enable features that normally would not be detected.
Stephen Paul Weber created
d751f11
Order cells by reported order
Instead of assuming all items are in the same order as reported
Stephen Paul Weber created
9b1828b
Look more like a real web browser
Stephen Paul Weber created
5c20049
Don't submit the form when cancelling
It's at best a waste of bytes and at worst confusing to the server.
Stephen Paul Weber created
5f31128
We can still proceed with no form, just don't send a form
Stephen Paul Weber created
2a013c7
Validate presence of required fields
Stephen Paul Weber created
71cc967
DRY up common patterns for fields
Stephen Paul Weber created
388e5f2
Refactor to bind to an Item container, not just a raw Element
Gets rid of the Column extends Element hack and paves the way for error messages and other things.
Stephen Paul Weber created
ad22cdd
Use more features of the TextInputLayout
Stephen Paul Weber created
62d7cf4
Support more text field types
Stephen Paul Weber created
24694f2
Support reported/item tables
Right now renders using a GridLayout which means all columns are the same width. No horizontal scrolling or becoming not-a-table for many columns, so big tables will be a disaster. Does render and work though. The strategy here is to actually make each cell an "item" in the RecyclerView instead of each row being an item. Then the layout manager takes care of it. This means that the end-of-row-ness is just because of column count, and not actually enforced at all. It also means that as currently built if any row has a missing field it'll mess up the whole thing. No type directed rendering or anything yet, just dump it out.
Stephen Paul Weber created
c0d8905
Allow copying result form fields to clipboard
Stephen Paul Weber created
d963e8c
If we get send a form of type submit or cancel, ignore it
These don't make any sense to send to us, but in practise biboumi does and expects us to ignore it.
Stephen Paul Weber created
d087141
Default action if there are none
Spec says that actions must be specified if there are any. In practise, at least biboumi violates this and sends back no actions at all but is in "executing" state meaning it expects a next stage. So in this case we should do something smarter than assuming we're all done. Put up a button for the execute/default action.
Stephen Paul Weber created
2932d60
Instruction spacing
Stephen Paul Weber created
977b0b4
Fix snackbar position
Stephen Paul Weber created
4f29829
Hide pager when there are no commands
And really hide it, even swipe should not work to get to the blank page
Stephen Paul Weber created
bf4e741
Only setup the command pager when not already set up
Otherwise it gets confused and blanks itself out.
Stephen Paul Weber created
8c706c9
Use radio buttons + EditText for list-single + open
Stephen Paul Weber created
a026647
Use radio buttons when there is no existing value
Stephen Paul Weber created
63e14cd
Fix NPE
Stephen Paul Weber created
240735a
Default to a spinner for list-single
Stephen Paul Weber created
2f99467
Fix two NPE
Stephen Paul Weber created
2717177
End a session that is over with nothing to say
If status is completed or canceled and there are no children, then there's nothing more to say so just remove the session.
Stephen Paul Weber created
cea8698
Show all available actions
Instead of a single "done" button, show all available actions in the footer, each in a different color (generated the same as avatar backgrounds, etc) with the action name translated if a translation is available. The pseudo-action "close" is for when a command is already completed. In this case, the execute() call will see that the session is already completed and it will be removed without actually checking the action string at all.
Stephen Paul Weber created
2a2bc81
Support boolean fields with checkboxes
Stephen Paul Weber created
1d8b94c
Clean up spacing
The RecyclerView doesn't put consistent space between our elements, so we need to make sure to but consistent bottom padding on them.
Stephen Paul Weber created
1c5a37e
Fix crash on rotation
Depending on the fragment lifecycle, onCreateView and onStart may both be called before the backend is connected, and so there will be no conversation yet. Instead, do the conversation-needing initialization here in reInit where we know we have it.
Stephen Paul Weber created
1f1d0d9
Initial datatype helpers for text fields
Stephen Paul Weber created
f668794
Add padding to the top of every command page
Stephen Paul Weber created
8434f84
Support editing text fields and submitting the form
Stephen Paul Weber created
e60d861
Support result field <desc/>
Stephen Paul Weber created
a0975ab
Render result form fields
Does not handle reported/item tables yet, or fillable forms.
Stephen Paul Weber created
1b1c1ca
If there is an OOB element that takes precedence, render it in a WebView
Stephen Paul Weber created
f04c75b
Only scroll the recyclerview if it has multiple items
Otherwise assume the single item can handle scrolling itself. Otherwise single-item view with a scrollable child breaks.
Stephen Paul Weber created
eba8c4f
Choose a child of command to actually render
The first element that we support. In this case, the first note.
Stephen Paul Weber created