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.
Downloads are stored at a filename that is the CID computed from a SHA256 hash
of their contents. Where necessary (such as to stream a large file down) they
are stored at the name based on the message UUID temporarily and then renamed.
Uploads, when they must be copied into our storage, are stored in the same way.
This results in de-duplicated storage, so sending the same file back and forth
many times even in different conversations results in only one copy being
stored.
Since Android does not play nice with symlinks, but we want to be able to look
up media by multiple possible hashes, the CIDs for SHA1, SHA256, and SHA512 are
all stored in a new database table whenever a file is downloaded or uploaded,
even if the file is never copied into our storage at all (so then the db table
contains a path to, say, the image in the camera folder).
When bits-of-binary cid transfer is attempted, first check if we have that
content locally already and just use it if we already have it instead of
requesting it again.
Stephen Paul Weber
created
0e638aa
Fix NPE when mPager gets cleared out before callback fires
Show horizontal list of tags available in current search results below the
search box, acts sort of like an autocomplete or you can just tap on it, making
tag naviation easier so you don't have to find something that matches that tag
or type it out to use it.