This adds complexity but will save a lot of bandwidth, as most of the
strings and byte arrays we want to send are less than 128 bytes.
The extra complexity isn't exposed outside of the serial component.
Upgrade jnotify to 0.94 to support 64-bit
This upgrades to 0.94 and selects the correct native lib via ${os.arch}. The binaries are from the jnotify sourceforge download page, you can verify them. Also patched up build.xml to display stack trace when exceptions are thrown inside a test.
Dev task #52. Known but unverified identities are also supported, but
currently unused. These will be used in future for contacts who've been
introduced but not verified face to face.
- add a UnixRemovableDriveMonitor.checkEnabled to pre-emptively check if it's loaded
- os.arch is always x86,x86_64 on windows, i386,amd64 on linux
- source: http://www.java-gaming.org/index.php/topic,14110
- we'll deal with freebsd support when we come to it, jnotify doesn't even do this atm
Note that this is only the generator part of Fortuna, not the
accumulator. The generator requires a seed, which is provided by a
platform-specific implementation of SeedProvider. On Linux the
implementation reads the seed from /dev/urandom.
If the schema of the database is incompatible with the schema expected
by the code, the database throws a DbSchemaException. LifecycleManager
indicates the error to BriarService, which uses HomeScreenActivity to
show a notification and quit the app.
Offered and requested message IDs are stored in the database rather than
being owned by DuplexConnections. This paves the way for moving to a
simplex transport layer.
Private messages are now the same as group messages, but groups can be
private or public. When a contact is added, a private group is created
and designated as the inbox for exchanging private messages with the
contact.
Removed Commons IO, which we were only using as a replacement for
File.getFreeSpace() on desktop plaftorms.
Note: The Huawei U8210 (Android 2.1) doesn't have all the Java 1.6
standard library methods, and crashes if they're called. Specifically,
String.isEmpty() and NetworkInterface.supportsMulticast() are missing,
so the changes removing those methods were not reverted.
The Request packet now contains a list of message IDs, rather than a
bitmap referring to the list of messages IDs in the Offer. This allows
the Request to be understood out of context, e.g. if the Offer and
Request are sent over separate connections or a connection is replayed.