130 Commits

Author SHA1 Message Date
Moxie Marlinspike
2e55e9cdca Guard NPE 2013-03-03 18:49:55 -08:00
Moxie Marlinspike
6230abb524 Add synchronized access to cache 2013-03-03 18:49:39 -08:00
Moxie Marlinspike
ef6a5c69af Tweak MMS retrieval and submission.
1) Only attempt direct connect outside of MMS radio mode on CDMA.

2) Don't switch back to normal radio state if pending messages remain.
2013-03-03 18:44:58 -08:00
Moxie Marlinspike
48576dbb58 Catch mysterious SMS too large exception. 2013-02-26 22:57:09 -08:00
Moxie Marlinspike
5ca7b1080c Fix for concurrentmodificationexception on race condition. 2013-02-26 22:56:48 -08:00
Moxie Marlinspike
eb9b2ef318 Fix for NPE on null mms bytes. 2013-02-26 22:56:15 -08:00
Moxie Marlinspike
6bd0f35787 Sometimes querying the APN DB throws this exception as well. 2013-02-26 22:55:23 -08:00
Moxie Marlinspike
2397176d9e Search support in ConversationList for <3.0 devices.
Switch to the newly-introduced ActionBarSherlock SearchView.
2013-02-24 19:37:37 -08:00
Moxie Marlinspike
34822557a6 Catch exception triggered by bug in telephony provider during import. 2013-02-24 11:59:43 -08:00
Moxie Marlinspike
bac6b78b11 Clear passphrase field on invalid entry. 2013-02-21 14:47:18 -08:00
Moxie Marlinspike
5bf5b404a1 Fix for notification NPE on unknown sender. 2013-02-20 20:44:38 -08:00
Moxie Marlinspike
f73adfc8f5 Change MMS network request pattern.
Currently we're flipping the radio in "MMS" mode, and connecting through
any proxies specified in the APN.  This always work, or at least doesn't
seem to work on Sprint, since the configured mms proxy rejects proxy
requests.

Instead we try the following in this order:

1) Connect over normal data connection directly to MMSC.
2) Connect over MMS radio connection to MMSC.
3) Connect over MMS radio connection with any configured proxy to MMSC.

Hopefully this doesn't fuck up shit on other unknown networks.
2013-02-20 18:10:33 -08:00
Moxie Marlinspike
df05508a6f Switch to AndroidHttpClient and explicit targeting. 2013-02-20 10:25:53 -08:00
Moxie Marlinspike
1ff4fd842c Pass on incoming messages until DB is imported. 2013-02-17 15:09:01 -08:00
Moxie Marlinspike
5eb04328d3 Improve passphrase and onboarding UI. Abstract out routing.
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.
2013-02-17 15:09:01 -08:00
Moxie Marlinspike
0a7181670c Radio updates happen frequently on some phones, switch to dynamic. 2013-02-14 20:42:29 -08:00
Moxie Marlinspike
d0d85ea52c Fix for duplicate message bug. 2013-02-14 19:15:40 -08:00
Moxie Marlinspike
c2dcf7ae74 Refactor MasterSecret initialization, access, and timeout paths.
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.
2013-02-10 17:30:51 -08:00
Moxie Marlinspike
90280a62ae Poor man's styling. 2013-02-09 17:43:31 -08:00
Moxie Marlinspike
2277dbd572 Localize ok/cancel 2013-02-09 17:38:33 -08:00
Moxie Marlinspike
471ef16a5b Support for robust delivery.
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.
2013-02-09 15:17:55 -08:00
Moxie Marlinspike
71f43075a9 Distinguish unread threads with background color. 2013-02-09 10:03:38 -08:00
Moxie Marlinspike
0a8c62e0e3 Include incoming message body in notifications.
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.
2013-02-08 16:27:43 -08:00
Moxie Marlinspike
49ea135e37 Don't auto-set thread to read on send. 2013-02-06 16:40:09 -08:00
Moxie Marlinspike
a29120d911 Fix for IndexOutOfBoundException (race condition on Recipients resolution) 2013-02-04 22:09:17 -08:00
Moxie Marlinspike
b044a68168 Fix for mysterious 'anonymous sender' NPE. 2013-02-04 21:51:25 -08:00
Moxie Marlinspike
01a5c889b0 Export stray strings for localization. 2013-02-04 11:12:03 -08:00
Moxie Marlinspike
dcf73cd009 Fix for 'group message' regression. 2013-02-04 11:03:19 -08:00
Moxie Marlinspike
bf92de394b Add support for resuming compose drafts. 2013-02-04 00:13:07 -08:00
Moxie Marlinspike
209711ae40 Fix notification behavior.
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.
2013-02-03 18:41:34 -08:00
Moxie Marlinspike
288e2b5572 Suppport receiving 'share' actions from other apps. 2013-02-02 20:37:40 -08:00
Moxie Marlinspike
232e7bba2d A conversation can't be trimmed to 0. 2013-01-14 12:10:57 -08:00
Moxie Marlinspike
fe43ef65ab Support for auto-deleting old messages beyond a certain conversation thread length. 2013-01-09 21:06:56 -08:00
Moxie Marlinspike
a185750bb7 Preserve ConversationList scroll state in between onPause/onResume. 2013-01-09 20:39:05 -08:00
Moxie Marlinspike
5cb02445e8 Add support for "delivery notifications." Currently SMS-only. 2013-01-06 21:38:36 -08:00
Moxie Marlinspike
118560cf0d Fix for DB creation and migration with new date schema changes. 2013-01-06 18:47:20 -08:00
Moxie Marlinspike
2204584d8f Improve locking and performance on asynchronous contact loading. 2013-01-06 15:46:26 -08:00
Moxie Marlinspike
83f90ddd4e Display both sent and received time in message details.
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.
2013-01-06 13:13:14 -08:00
Moxie Marlinspike
ead97953e8 Add proxy port option to local APN settings. 2013-01-05 15:48:29 -08:00
Moxie Marlinspike
68c29f283d Fall back to user-configured MMS params on SecurityException 2013-01-02 10:06:34 -08:00
Moxie Marlinspike
abd7fc67da Fix NoClassDefFound errors on 2.2 devices. 2013-01-01 15:38:09 -08:00
Moxie Marlinspike
b805c4db4e Fix for NPE on empty MMS PDU 2013-01-01 12:54:12 -08:00
Moxie Marlinspike
61d4192798 Refactor ContactPhotoFactory to handle changing local contact URIs. 2012-12-30 16:42:33 -08:00
Moxie Marlinspike
9b45e6068b Better asynchronous loading for Recipient information.
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.
2012-12-27 12:00:14 -08:00
Moxie Marlinspike
9939830551 Refactor recipient access.
1) Refactor recipient class to support asynchronous loading operations.

2) Refactor recipient factory to simplify recipient access.

3) Consoliate everything into one recipient provider that is capable of
doing async lookups and intelligent caching.
2012-12-24 08:40:37 -08:00
Moxie Marlinspike
f685cb550b Collapse NewRecipientProvider into RecipientProvider 2012-12-12 03:56:38 -08:00
Moxie Marlinspike
54fad30f9f Add ability to specify APN information in TextSecure settings.
1) Add configuration options for APN information in TextSecure settings.

2) Fall back to TextSecure settings if system settings are unavailable
while sending/receiving MMS.

3) Catch sqlite exception when devices randomly don't have the same
APN db or table structure.
2012-12-08 16:49:57 -08:00
Moxie Marlinspike
84a29df1ee Switch passphrase creation to async task. 2012-12-01 16:02:56 -08:00
Moxie Marlinspike
0e5ff9bdac Fix for occasional NPE 2012-12-01 16:02:55 -08:00
Moxie Marlinspike
575341704e Proper recipient bracket parsing 2012-12-01 16:02:55 -08:00