Especially during start up, syncRoster can get called a *lot*. We already avoid
doing them in parallel, but they can happen one right after the other, locking
up the DB and churning IO.
Now, after we persist the roster, wait for 500ms before giving the next persist
a chance to run. That way, other stuff has 500ms to get work done and we lose
very little DB consistency in the case of a failure.
Stephen Paul Weber
created
d3fd746
Remove redundate oobUri, set FileParams from OOB or SIMS
Click to expand commit body
The url was being stored as part of oobUri and the FileParams, which is
redundant. Just store FileParams now, and construct it directly from the OOB
or (newly) SIMS reference if present.
This brings rudimentary support for SIMS, which saves us a file size check
roundtrip when SIMS is present.
* xhtml-im:
Fetch XEP-0231 inline images from trusted contacts
Actually display images we already have inline in XHTML-IM
Support for storing and displaying XHTML-IM
Preserve Text Nodes in XML
Stephen Paul Weber
created
a8e57ce
Fetch XEP-0231 inline images from trusted contacts
Click to expand commit body
If a contact is trusted or already likely to know our presence (due to having
sent them a message) then auto-fetch XHTML-IM inline images via XEP-0231 from them.
Stephen Paul Weber
created
4f4a5bb
Actually display images we already have inline in XHTML-IM
Click to expand commit body
If we already have the image for the Cid downloaded, then do create the
thumbnail and show it inline.
Stephen Paul Weber
created
87ddf94
Support for storing and displaying XHTML-IM
Click to expand commit body
Only supports images with XEP-0231 compatible cid: URIs, otherwise images render
as a fallback image. This commit doesn't yet support fetching the images at
all, but can ask a passed-in thumbnailer to figure out getting the image for a
certain Cid.
The XML model that was being used was not able to represent elements with text
nodes and element children interspersed (such as in "markup like" XML:
<x>abc <y>def</y> ghi</x>). This switches from a single content String to a
list of child Node. Content is pulled from all children recursively. A list of
Element children is also maintained since this list is frequently traversed so
it saves runtime checks in all of those loops at the expense of a small amount
of memory. Since the children and childNode lists must be kept in sync, they
are both made private to avoid a child class trying to mutate one of them
without a safe helper.
* recolour-bubbles:
Fix shadow, add tails, fix monochrome
Match theme colours
Less bubbly
Remove unused 9patch
add the newly created color entries to the bubble Drawable
add XML entries for sent/received bubbles
remove hardcoded bubble color
link all the old 9patch refereces to the new Drawables
Tweak the chat page for the new bubbles
forgot to commit the new bubble Shape Drawables
link all message bubbles from all themes to the same XML drawable
use the new msg bubble XML instead of the 9patch PNGs
29d040d
add the newly created color entries to the bubble Drawable
Click to expand commit body
Now editing the color from the theme affects the bubbles directly. Monochrome versions left to do still. Also added the Theme entries so the theme applies to the bubbles
67d1d88
forgot to commit the new bubble Shape Drawables
Maxime V
created
24a1746
link all message bubbles from all themes to the same XML drawable
Maxime V
created
a0418e0
use the new msg bubble XML instead of the 9patch PNGs
Maxime V
created
a29c7c7
modify scram mechanisms to use guava hashing
Daniel Gultsch
created
de3a352
Enable library desugaring to use Java8 features on older Android
Stephen Paul Weber
created
e31ae3e
Terrible gross hack for starting group text
Click to expand commit body
This is the first feature to hardcode cheogram.com let's hope we can remove it
someday.
XEP-0033 does not have good fallback behaviour, and group text doesn't map well
to MUC. We could still do a MUC mapping, or think of a better fallback
behaviour, or something else, but for now analysis paralysis means we stick to
the gross +1...,+1...,+1...@cheogram.com -- but that's not a protocol, it's not
something we can detect or design around or expect anyone else to ever do. So
just check for cheogram.com because that's the only place we ever expect to see
this dirty hack.
If starting a new private group and every selected member is @cheogram.com, then
ask if we should make a group text instead.