1) Migrate from GSON to Jackson everywhere.
2) Add support for storing identity key conflicts on message rows.
3) Add limited support for surfacing identity key conflicts in UI.
* unify single and multi contact selection activities
* follow android listview design recommendations more closely
* add contact photos to selection
* change indicator for push to be more obvious
* cache circle-cropped bitmaps
* dedupe numbers when contact has multiple of same phone number
// FREEBIE
1) Move the attachment structures into the encrypted message body.
2) Encrypt attachments with symmetric keys transmitted in the
encryptd attachment pointer structure.
3) Correctly handle asynchronous decryption and categorization of
encrypted push messages.
TODO: Correct notification process and network/interruption
retries.
1) Allow imports from the stock SMS database at any time.
2) Provide plaintext export support, in a format compatible with
the "SMS Backup And Restore" app.
3) Fix the DB weirdness on encrypted restore that previously
required killing the app.
1) Broke out the UI elements of the major Activites into stylable
attributes.
2) Created a 'light' and 'dark' theme for the newly stylable attrs.
3) Touched up some of the UI spacing.
4) Implemented dynamic theme switching support.
1) Update the create, prompt, and change passphrase activities.
They are no longer dialog themed, and should look a little
less ugly.
2) Update the import DB activity to be less ugly and more robust.
3) Abstract all of the state handling stuff out of
ConversationListActivity. This is now handled by RoutingActivity,
which all launch intents move through.
On platforms (API >= 11) that support receiving click events within
a notification, we change the notification format so that users
can "lock" TextSecure with a click.
For all platforms, we change the notification icon in the status
bar from a "lock" to an "unlock," to better reflect the situation.
This is all part of the master plan for eliminating the passphrase
timeout option.