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.
1) Consolidate all of the KeyCachingService interaction into a single
mixin. Activities extend delegates which call through to the mixin.
2) Switch Activity increment/decrement triggers from onStop to onPause
in order to account for some screen locks that don't stop activities.
1) If a message fails to be delivered, post a notification in the
status bar if that thread is not active and visible.
2) If a message fails to be delivered because there is no service,
keep retrying every time service becomes available again.
1) Refactor the master secret reset logic to properly interact with
services.
2) Add support for "BigText" and "Inbox" style notifications.
3) Decrypt message bodies when unlocked, display 'encrypted' when
locked.
1) Don't add a notification item to the notification bar if the thread the
message is for is active and visible.
2) Only sound the notification ringtone at 1/4th volume if the thread the
message is for is active and visible.
3) Auto-clear the notification in the notification bar when a thread becomes
visible from a screen-off situation.
4) Make notification updates asynchronous.
1) We record time sent in SMS database (date_sent).
2) We record time received in MMS database (date_received).
3) We union this information correctly in MmsSmsDatabase.
1) Switch back from AsyncTasks to an Executor and Futures.
2) Make the Executor operate LIFO.
3) Make the Executor thread a BACKGROUND_PRIORITY thread.