Commit Graph

692 Commits

Author SHA1 Message Date
Moxie Marlinspike
9768de2d5e Short circuit self-send.
// FREEBIE
2014-10-22 18:28:03 -07:00
Moxie Marlinspike
4cdc0a3e61 Make signed prekey generation happen through the job queue. 2014-10-21 12:47:08 -07:00
Moxie Marlinspike
b568ce70b2 Make delivery receipts work correctly for groups. 2014-10-20 21:06:34 -07:00
Moxie Marlinspike
b308996885 Switch to using our own JobManager.
// FREEBIE
2014-10-20 19:13:06 -07:00
Moxie Marlinspike
73d896f378 Index shouldn't be unique. 2014-10-20 19:02:42 -07:00
Moxie Marlinspike
36ec1d84a1 Implement delivery receipts.
1) Support a "receipt" push message type.

2) Identify messages by timestamp.

3) Introduce a JobManager to handle the queue for network
   dependent jobs.
2014-10-20 19:02:42 -07:00
Moxie Marlinspike
20cf775b1e Fix up routing activity actions. 2014-10-20 14:55:34 -07:00
Moxie Marlinspike
73b75a4a27 Fix build. 2014-10-20 12:25:40 -07:00
Moxie Marlinspike
27b5bf54cc Remove 1 mod 8. 2014-10-20 12:25:39 -07:00
Moxie Marlinspike
819982af7b Rearrange decrypt API.
1) Change SessionBuilder to only establish sessions via
   KeyExchangeMessage and PreKeyBundles.

2) Change SessionCipher to decrypt either WhisperMessage
   or PreKeyWhisperMessage items, automatically building
   a session for the latter.

3) Change SessionCipher to tear down new sessions built
   with PreKeyWhisperMessages if the embedded WhsiperMessage
   fails to decrypt.
2014-10-20 12:25:38 -07:00
Moxie Marlinspike
42cf53e487 Rename "pendingPreKey" to "unacknowledgedPreKeyMessage" 2014-10-20 12:23:15 -07:00
Moxie Marlinspike
3f299936bf Only create signed prekey if push registered. 2014-10-20 12:23:14 -07:00
Moxie Marlinspike
5f5ddd7c26 Generate SignedPreKey records, improve SignedPreKey cleanup. 2014-10-20 12:23:08 -07:00
Moxie Marlinspike
0d532afd8e Rename 'device key' to 'signed prekey'. 2014-10-20 12:17:24 -07:00
Moxie Marlinspike
07fd17ccda Add padding for push messages.
1) Use 'bit padding.'

1) By default, pad at 160 byte increments.
2014-10-20 12:17:23 -07:00
Moxie Marlinspike
811479d168 Add first cut of protocol v3 support.
1) Use the new /v2/keys API for storing/retrieving prekey bundles.

2) For sessions built with PreKeyBundle and PreKeyWhisperMessage,
   use a v3 ratcheting session when available.
2014-10-20 12:17:23 -07:00
Moxie Marlinspike
931605a1c4 Move identity key verification into libaxolotol. With tests. 2014-10-20 12:14:18 -07:00
Moxie Marlinspike
a601c56af1 Collapse SessionRecord, SessionState, and PreKeyRecord interfaces. 2014-10-20 12:14:17 -07:00
Moxie Marlinspike
5a3c19fe3e Javadocs, and some minor refactoring. 2014-10-20 12:14:17 -07:00
Moxie Marlinspike
af45e5d544 SessionBuilder improvements, more extensive SessionBuilder tests. 2014-10-20 12:14:17 -07:00
Moxie Marlinspike
72af8b11c2 Move session construction and KeyExchangeMessage into libaxolotl.
1) Add plain two-way key exchange support libaxolotl by moving
   all the KeyExchangeMessage code there.

2) Move the bulk of KeyExchangeProcessor code to libaxolotl
   for setting up sessions based on retrieved prekeys, received
   prekeybundles, or exchanged key exchange messages.
2014-10-20 12:14:17 -07:00
Moxie Marlinspike
a1db221caf Collapse KeyExchangeMessage and KeyExchangeProcessor interfaces. 2014-10-20 12:14:17 -07:00
Moxie Marlinspike
14b8f97de2 Reorganize session store load/store operations. 2014-10-20 12:14:17 -07:00
Moxie Marlinspike
d902c12941 Break core ratchet out into libaxolotol.
1) Break the core cryptography functions out into libaxolotol.

2) The objective for this code is a Java library that isn't
   dependent on any Android functions.  However, while the
   code has been separated from any Android functionality,
   it is still an 'android library project' because of the
   JNI.
2014-10-20 12:10:02 -07:00
Jake McGinty
31167d11dd use wildcard media types, don't crash on preview fail
// FREEBIE
2014-10-17 17:59:56 -07:00
Jake McGinty
6e3751a0c5 sane fallback for media selection on exception
Fixes #1763
// FREEBIE
2014-10-17 17:41:42 -07:00
Jake McGinty
b5941fb3fd actually fallback when mms local params unset
// FREEBIE
2014-10-15 17:14:12 -07:00
Jake McGinty
2075bba86c switch back to BufferedInputStream
// FREEBIE
2014-10-13 15:38:27 -07:00
Jake McGinty
89fb80fcc5 MmsConnection refactor
- Use Apache HttpClient v4.x, only library that seems to like HTTP proxies
- Remove custom redirect logic in favor of library's

Fixes #1904
// FREEBIE
2014-10-13 12:26:38 -07:00
Jake McGinty
b8a3e87f3d custom redirect logic
// FREEBIE
2014-09-15 14:13:27 -07:00
Jake McGinty
7316f17674 don't crash if we can't get an mccmnc
Fixes #1916
// FREEBIE
2014-09-14 17:46:07 -07:00
Veeti Paananen
609e69a801 Show date and year for ancient (> 1 year old) messages
The timestamp shown for very old messages only includes the time without
a date at all. Fix it. FREEBIE.
2014-09-08 15:08:46 -07:00
Jake McGinty
1b3bd32805 fallback to rough scaling if low memory
// FREEBIE
2014-09-05 13:00:26 -07:00
Moxie Marlinspike
877f2a25a9 Merge pull request #1887 from mcginty/mms-3xx
allow url client to follow redirects before checking response code
2014-08-29 15:23:00 -07:00
Jake McGinty
eb462f0345 force redirects, get inputstream first 2014-08-29 16:34:25 -05:00
Moxie Marlinspike
102b40543d Merge pull request #1886 from mcginty/mms-bad-pdu-logging
enable more verbose PDU parse logging
2014-08-29 14:33:25 -07:00
Jake McGinty
12077c6dad enable more verbose PDU parse logging
// FREEBIE
2014-08-29 16:29:36 -05:00
Jake McGinty
7441c191a7 Format outgoing MMS using SMIL.
// FREEBIE

Closes #1879
2014-08-29 14:29:24 -07:00
Lukas Barth
b355991b0b Remove superfluous repetition
//FREEBIE
2014-08-29 15:33:19 +02:00
Jake McGinty
a0842f329f disable localized collators in ApnDB
// FREEBIE
2014-08-20 13:41:59 -07:00
Jake McGinty
9b495d8c83 prevent another cursor leak
// FREEBIE
2014-08-20 12:29:40 -07:00
Moxie Marlinspike
5264ebed67 Avoid leaking cursor.
// FREEBIE

Closes #1838
2014-08-20 10:36:39 -07:00
Jake McGinty
7f51f9fd5b apntool and ApnDatabase
// FREEBIE
2014-08-20 10:36:39 -07:00
Moxie Marlinspike
40495a2261 Merge pull request #1854 from mcginty/content-description
improve some content descriptions
2014-08-19 21:00:20 -07:00
Jake McGinty
a6c1fdd914 improve some content descriptions
// FREEBIE
2014-08-19 19:10:15 -07:00
Jake McGinty
020d61dd6e migrate nav panel items to actionbar
Fixes #1819
Closes #1839
// FREEBIE
2014-08-19 15:20:57 -07:00
Moxie Marlinspike
f4e9c4a710 Minor MMS cleanup.
// FREEBIE

Closes #1827
2014-08-13 14:40:19 -07:00
Jake McGinty
28e14f47cf use URLConnection for MMS because it's better
// FREEBIE
2014-08-13 12:36:47 -07:00
Jake McGinty
213715a0dc braces around loop, proper spacing
// FREEBIE
2014-08-12 18:23:18 -07:00
Moxie Marlinspike
7b0479ff0f requestRouteToHost of URL rather than MMSC on MMS Download
// FREEBIE

Closes #1806
2014-08-12 17:31:28 -07:00
rymdhund
feabbb33d2 MMS Fixes
1) Respect proxyIfPossible flag and make sure to try all mms APNs

2) Reorder mmsc connection process
2014-08-12 17:30:19 -07:00
rymdhund
d3da409774 Add time to saved media filenames
see #1689
// FREEBIE
2014-08-12 16:09:26 -07:00
Jake McGinty
b61e7839f4 prevent MMS notification NPE
// FREEBIE
2014-08-10 21:15:55 -07:00
Jake McGinty
306c127803 fix EmojiLRU concurrency exception
// FREEBIE
2014-08-04 16:51:44 -07:00
Jake McGinty
239a11bfd2 fix unused argument
// FREEBIE
2014-08-04 15:30:52 -07:00
Jake McGinty
de63b0dd96 make reminder a custom view, make push reminder
// FREEBIE
2014-08-04 15:25:53 -07:00
Jake McGinty
eb4ac40051 don't use old emoji recents, broken
Fixes #1782
// FREEBIE
2014-08-04 15:23:43 -07:00
Moxie Marlinspike
8726dd51be Can't toast on this thread.
// FREEBIE
2014-08-02 23:15:57 -07:00
Moxie Marlinspike
861d27279d Whoops, add GcmRegistrationService to Manifest.
// FREEBIE
2014-08-01 14:33:17 -07:00
Veeti Paananen
9e74b5c892 Remove gray placeholder squares while loading emoji 2014-08-01 13:40:19 -07:00
Veeti Paananen
3597915d17 Add a backspace key to the emoji drawer 2014-08-01 13:40:19 -07:00
Veeti Paananen
40ce0cebe0 Fix emoji backwards compatibility recents crash
The old emoji drawer stored emoji with a .png suffix. Replace it during
list deserialization.
2014-07-31 02:49:36 +03:00
Jake McGinty
7d688846f9 Move default SMS and system import to "reminders"
// FREEBIE
Closes #1730
2014-07-27 01:09:39 -07:00
McLoo
acc7c4c1c6 Null check for cipher text to prevent NPE on decryption
Fixes #1703
Closes #1728
// FREEBIE
2014-07-26 23:02:11 -07:00
Jake McGinty
530ad7bc86 new emoji drawer
// FREEBIE
Closes #1746
2014-07-26 13:35:03 -07:00
Jake McGinty
bea3c33223 disable passphrase creation on registration
// FREEBIE
Closes #1726
2014-07-25 17:46:50 -07:00
Moxie Marlinspike
9ef14a0f64 Upgrade to new GCM API. 2014-07-23 15:40:45 -07:00
Moxie Marlinspike
40698212bb Create a Curve25519 asymmetric master secret for users without.
Fixes #1701
2014-07-18 22:16:12 -07:00
Veeti Paananen
19ae5043cc Add number of messages to the notification number attribute
Although not used by stock Android, many custom ROM's (and possibly OEM
versions?) have a setting to display the "number" count of a notification
overlayed on the status bar icon. Add support for this.

Closes #1637
2014-07-16 11:50:42 -07:00
rymdhund
d1dd50e31c Add date to saved media filenames
Fixes #1689
Closes #1693
2014-07-16 11:46:18 -07:00
Jake McGinty
f6e04d0f89 use latest android number as recipient number
Fixes #791
// FREEBIE
2014-07-14 16:22:15 -07:00
Jake McGinty
da0eb5a779 no longer load a recipient for each filter text
// FREEBIE
2014-06-24 20:33:04 -07:00
McLoo
d429f9113b Replace XML serializer in plaintext export
Fixes #342

- using regex pattern/matcher to escape chars below 0x0020 and
  above 0xd7ff
- using String.Replace to escape XML entities
- changed XmlPullParser from Xml.newPullParser() to
  XmlPullParserFactory parser to fix import on GB
2014-06-24 13:02:36 -07:00
Moxie Marlinspike
8f85eb1822 Remove unused files.
Fixes #1522

// FREEBIE
2014-06-24 08:32:59 -07:00
Moxie Marlinspike
358c923891 Merge pull request #1630 from mcginty/remove-keys-list
remove ReviewIdentitiesActivity
2014-06-23 11:17:17 -07:00
Lukas Barth
2d9cd8eb52 Fixing race condition and other mistakes. Fixes #1603.
// FREEBIE
2014-06-23 11:16:37 -07:00
Jake McGinty
5121ab0eed temporarily disable encrypted backup
// FREEBIE
2014-06-22 16:40:02 -07:00
Jake McGinty
f63f95404e remove ReviewIdentitiesActivity
// FREEBIE
2014-06-22 16:21:30 -07:00
Jake McGinty
5ce6dc954a move FLAG_SECURE to PassphraseRequiredMixin
Fixes #1402
// FREEBIE
2014-06-16 20:41:13 -07:00
Özgür Emir
c85a8bbb38 Always show the time of the received message. 2014-06-16 15:57:39 -07:00
agrajaghh
0f9a6e6296 add custom phone number type 2014-06-16 15:27:33 -07:00
phenx-de
d8cb893681 Fixes "subtitle is not updated when select all is pressed"
// FREEBIE
2014-06-16 09:33:35 -07:00
Michael Kaiser
1ad54e7b88 Fix more leaked service connections
PassphraseRequiredMixin might check for a bound service at a time where
the bind has been requested but the service connection has not been
established yet, and therefore fail to call unbindService, leading to a
leaked service connection. This fixes #1518.
2014-06-15 19:28:09 -07:00
Moxie Marlinspike
0d35e2bfa9 Fix the "Tap for X fallback" labels. 2014-06-13 17:48:56 -07:00
Moxie Marlinspike
983bf672cf Fix UI side of broken MMS fallback.
1) Actually tell the SendReceiveService to send the MMS if it is
   one.

2) Display the correct string (SMS vs MMS) in the fallback dialog.
2014-06-13 17:39:29 -07:00
Moxie Marlinspike
1c2e1a07f5 Fixes for outgoing SMS/MMS direct and fallback behavior.
1) Correct MMS fallback settings.

2) Prevent SMS/MMS messages from leaking out under certain
   circumstances when they shouldn't.
2014-06-13 17:15:46 -07:00
Moxie Marlinspike
2d739a324e Validate MMS delivery destination.
We can't depend on validated Recipients anymore, so this adds
parity to the validation the SMS transport does now.

Fixes #1592
2014-06-13 16:15:33 -07:00
Moxie Marlinspike
ba1055df8e Correct contextual send language.
1) Use "secure" and "insecure" vs "encrypted" and "unencrypted.

2) Use MMS instead of SMS where appropriate.

Fixes #1602
2014-06-13 15:24:38 -07:00
phenx-de
a54d20f3ef Add "%s selected" subtitle to Conversation List batch mode. 2014-06-13 09:35:36 -07:00
phenx-de
ea0fa58265 Add preview of encryption channel in compose text hint. 2014-06-12 16:32:31 -07:00
Moxie Marlinspike
359fe280e8 Fix for broken build (*ahem* @phenx-de *ahem*) =)
// FREEBIE
2014-06-12 16:27:51 -07:00
Jake McGinty
34e147838a use apply for preferences instead of commit
// FREEBIE
2014-06-12 14:45:51 -07:00
phenx-de
d8e6a93584 Use contextual action bar menu for conversation items. 2014-06-12 14:27:34 -07:00
Moxie Marlinspike
0e6773b4b7 Remove directory refresh preference.
This is present on the contact screen now, so there's no longer
any need for it here.
2014-06-12 11:58:24 -07:00
McLoo
fb13d33e2e Show drafts emojified when Android version is below KitKat 2014-06-12 11:30:50 -07:00
Pascal Hartig
92fd8ededd Sort contacts case-insentively
This fixes the case sensitive ordering of contacts in the view
for creating new conversations.

Fix #1502
2014-06-12 10:56:46 -07:00
agrajaghh
8713a85beb Add notification for key change event.
Fixes #1460
2014-06-12 10:40:46 -07:00
Marek Wehmer
9b82411c3d Better share intent handling.
1) Guess mime type from share intent EXTRA_STREAM uri.

2) Always include EXTRA_TEXT (if present)
2014-06-12 10:23:56 -07:00
Veeti Paananen
bd889d8fa9 Reword the very confusing screen security setting 2014-06-12 09:22:39 -07:00
Moxie Marlinspike
d51adab76b Use "date sent" as timestamp for push, "date received" for SMS.
The "sent time" is not reliable on SMS messages.  This switches
to using "sent time" by default for push messages, but "received
time" for SMS messages.
2014-06-12 08:59:54 -07:00