Commit Graph

644 Commits (503d1ef452b794bd21d3f2fecd1dcde81e411453)

Author SHA1 Message Date
Moxie Marlinspike 9c9866e7ee Add 'leave group' functionality. Includes other bug fixes. 11 years ago
Moxie Marlinspike a6e1d56cde Refactor group messaging protocol.
// FREEBIE
11 years ago
Jake McGinty b855f8a163 fix single contact selection for contacts with multiple phones
// FREEBIE
11 years ago
Jake McGinty 7beab36c6a updates to conversation menu, and updating of group info
// FREEBIE
11 years ago
Moxie Marlinspike ccd1691b22 Make 'push' status a type bit on both incoming and outgoing msgs. 11 years ago
Moxie Marlinspike 2026330f8a Remove dead code. 11 years ago
Moxie Marlinspike 3ca25de034 Fix for MMS decoding when no SIM is available. 11 years ago
Moxie Marlinspike ff238a1ce9 Indicate a message was delivered via push in its delivery status. 11 years ago
Moxie Marlinspike 918f223149 Add preference to disable the SMS channel all together.
1) If the SMS fallback preference is disabled, no outgoing
   messages will succeed via the SMS transport.

2) If the SMS fallback preference is disabled, "mirroring" the
   SMS db state when not the default system SMS app is disabled.
11 years ago
Moxie Marlinspike c5821f770a Don't prompt for auto-initiate if push registered (or active V2). 11 years ago
Moxie Marlinspike 5b22a7bdcb Create Curve25519 identities in the next release. 11 years ago
Moxie Marlinspike 2a74dc8d82 Update the conversation UI after aborting a V1 session. 11 years ago
Moxie Marlinspike 145e4335fc Only send round-trip key exchanges over SMS. 11 years ago
Moxie Marlinspike 1d4d9663db Fix for NPE 11 years ago
Jake McGinty a0cbbd2d21 confirm session abort handler in ConversationItem
// FREEBIE
11 years ago
Moxie Marlinspike 9614dc9055 Refactor group database model and flow.
1) Use existing DB types instead of adding new columns.

2) Store group attributes in message body, like everything else.
11 years ago
Jake McGinty 0cdc6fd87d embrace the darkness, don't open quickcontact for groups
// FREEBIE
11 years ago
Moxie Marlinspike 19dddd7adf Support for an 'end session' protocol message.
1) On the push side, this message is a flag in PushMessageContent.
   Any secure message with that flag will terminate the current
   sessin.

2) On the SMS side, there is an "end session" wire type and
   the convention that a message with this wire type must be
   secure and contain the string "TERMINATE."
11 years ago
Jake McGinty 0688dd0c2c repurpose ImageDivet for avatar, minor lint, fix bitmap decoding
// FREEBIE
11 years ago
Jake McGinty 9d9a0ec218 collection of fixes based on comments/small aesthetic stuff // FREEBIE 11 years ago
Jake McGinty e05bacd8c3 fixing avatar selection when some gallery apps won't return any extras
but still succeed // FREEBIE
11 years ago
Moxie Marlinspike 760c96171d Merge branch 'master' into groups 11 years ago
Moxie Marlinspike 3999171377 Introduce registration-time ID for detecting stale sessions.
1) At registration time, a client generates a random ID and
   transmits to the the server.

2) The server provides that registration ID to any client
   that requests a prekey.

3) Clients include that registration ID in any
   PreKeyWhisperMessage.

4) Clients include that registration ID in their sendMessage
   API call to the server.

5) The server verifies that the registration ID included in
   an API call is the same as the current registration ID
   for the destination device.  Otherwise, it notifies the
   sender that their session is stale.
11 years ago
Jake McGinty abce678cb4 received group messages aren't processed as "meta" group stuff, oops. 11 years ago
Jake McGinty fb75d90edc fix bug where it opened wrong thread for TS group creates 11 years ago
Jake McGinty 25324a45b3 Show something for unnamed groups, allow us to have different default photos for groups vs. individuals 11 years ago
Jake McGinty 877ed8f59c Show TS group titles properly, hide MMS options 11 years ago
Jake McGinty 54b087c458 MMS should open conversation also 11 years ago
Jake McGinty ca51ddac7f re-privatize getRecipientForNumber 11 years ago
Jake McGinty e15ff6193f unbreak group insertion for new installs 11 years ago
Jake McGinty 93329df530 avatar selection on gb fixed, disable push groups if not push registered 11 years ago
Jake McGinty 948f888670 group ui task refactor, small bug fixes 11 years ago
Jake McGinty c19ac8ec1e less hacky way of converting ContactData to Recipients 11 years ago
Jake McGinty 04327e9ed7 refresh conversation fragment to new thread when created 11 years ago
Jake McGinty e81526e581 error messaging for group creation issues 11 years ago
Jake McGinty 4f87c1e52e better intent sequence for single contact selection 11 years ago
Moxie Marlinspike 9bb327db42 Handle SMS fallback preferences correctly, and fix directory sync. 11 years ago
Moxie Marlinspike 94b54a6d63 Fix build. 11 years ago
Moxie Marlinspike fe03a22926 Make group creation exceptions more accurate. 11 years ago
Moxie Marlinspike d8e1df9233 Check prekey identity on mismatched devices too. 11 years ago
Moxie Marlinspike 6b5753337c Putting this functionality in the hands of the user was a bad idea. 11 years ago
Moxie Marlinspike 18f3314cd2 Fix for no paradigm. 11 years ago
Moxie Marlinspike b9f4fba98a Handle identity key mismatch on outgoing group messages.
Additionally, make the group creation process asynchronous.
11 years ago
Jake McGinty 5810062b25 group action conversation items, tweaks to single contact selection 11 years ago
Moxie Marlinspike e7e5bc0884 Verify identity keys on outgoing messages.
If PreKeyEntity identity key doesn't match local DB, fail
outgoing message and queue "incoming" identity key update
message for manual user approval.
11 years ago
Moxie Marlinspike e2989373cd All push groups are 'secure' ConversationActivities. 11 years ago
Moxie Marlinspike 4e703d5a00 Correct retry logic for SMS JB+ and for push groups. 11 years ago
Moxie Marlinspike b79bc4c234 Fix for non-group threading issue. 11 years ago
Moxie Marlinspike a305bb80e6 Correctly display group members 11 years ago
Jake McGinty 8e3aa94a05 group member name tags, group convo iconography, tweaks 11 years ago
Moxie Marlinspike 7d3a2acb29 Fix build 11 years ago
Jake McGinty 9b41675f8f single contact selection 11 years ago
Moxie Marlinspike 9438973eac Switch to protobuf enums for push signal type. 11 years ago
Moxie Marlinspike 2f98622948 Fix group migration. 11 years ago
Moxie Marlinspike 067799be06 Display group actions and correctly handle group delivery. 11 years ago
Moxie Marlinspike 7c46f3cbf8 Fill in group creation actions 11 years ago
Jake McGinty 41aa53dd66 masterSecret 11 years ago
Jake McGinty b47076cf1b kill wrong finish() for mms creation 11 years ago
Jake McGinty bb4a4d33c9 handlePush and handleMms prototypes 11 years ago
Jake McGinty c5d010c86f Quick progressbar sample for network operations during group create 11 years ago
Jake McGinty 01a438de09 basic messaging when non-push users are added 11 years ago
Jake McGinty b4a4e629f1 alignment and string work 11 years ago
Jake McGinty 9cd5a67ec5 directory changes to use number instead of token, group ui progress 11 years ago
Moxie Marlinspike 0af473d880 Merge branch 'groups' of github.com:WhisperSystems/TextSecure into groups 11 years ago
Moxie Marlinspike 0ace469d74 Support for multi-device.
1) In addition to the Recipient interface, there is now
   RecipientDevice.  A Recipient can have multiple corresponding
   RecipientDevices.  All addressing is done to a Recipient, but
   crypto sessions and transport delivery are done to
   RecipientDevice.

2) The Push transport handles the discovery and session setup
   of additional Recipient devices.

3) Some internal rejiggering of Groups.
11 years ago
Jake McGinty ed3151bdb5 backward compatible navigation drawer toggle // FREEBIE 11 years ago
Jake McGinty 9fd2c4753e ui wip 11 years ago
Jake McGinty 2f01569e45 Revert "Don't stick thread IDs in the Intent extra data. Always mark all threads read from notification."
This reverts commit 91b52bed18.
11 years ago
Moxie Marlinspike 49daa45dca wip 11 years ago
Moxie Marlinspike 4851a555e7 Merge pull request #540 from WhisperSystems/lint
Fixes more lint errors
11 years ago
Ruben Pollan 6cdd2aff0d Suppress lint errors 11 years ago
Ruben Pollan c134709009 Add apn settings for some providers 11 years ago
Moxie Marlinspike 9b6d4e3696 Merge pull request #532 from mcginty/visual_refresh
WBoC Visual Refresh
11 years ago
Jake McGinty 28c1c5006b icon, contact list and conversation redesign 11 years ago
bozsco e9a8c7474c Automatically show keyboard when new SMS is composed 11 years ago
Ben Reser 149671095b Fix issue #469: Hide "Clear Passphrase" if passphrase is disabled. 11 years ago
Moxie Marlinspike c488947248 Merge pull request #453 from irv/master
Merge Fix issue #433
11 years ago
Moxie Marlinspike 04b2c3772a Support skipping password creation at setup 11 years ago
Moxie Marlinspike 5c97b1e864 Twiddle the auto initiate 11 years ago
Moxie Marlinspike dde2d2564a Fix rebase errors 11 years ago
Moxie Marlinspike 71664926e9 Better handling for unregistered users on outgoing message. 11 years ago
Moxie Marlinspike d4188c4a1c SHA256 attachment MACs. 11 years ago
Moxie Marlinspike f002072f38 New attachment API 11 years ago
Moxie Marlinspike 327ee4ff62 Remove unnecessary classes, up prekey limit to 100 11 years ago
Moxie Marlinspike 1ab4e7e9de Library accepts push connection certificate as argument. 11 years ago
Moxie Marlinspike ce5f3c5157 Validate phone numbers when formatting. 11 years ago
Moxie Marlinspike 44092a3eff Support for Axolotl protocol.
1) Split code into v1 and v2 message paths.

2) Do the Axolotl protocol for v2.

3) Switch all v2 entities to protobuf.
11 years ago
Moxie Marlinspike dc73bc2a5c Having calling code specify push URL to library. 11 years ago
Moxie Marlinspike 4380b46a35 Correctly update MMS security status. 11 years ago
Moxie Marlinspike fde8d32848 Subtle rebase conflicts... 11 years ago
Moxie Marlinspike dadabdfaa8 Make UI responsive to UniversalTransport upgrades. 11 years ago
Moxie Marlinspike c38a8aa699 Migrate to Curve25519.
1) Generate a Curve25519 identity key.

2) Use Curve25519 ephemerals and identities for v2 3DHE agreements.

3) Initiate v2 key exchange messages.

4) Accept v1 key exchange messages.

5) TOFU Curve25519 identities.
11 years ago
Moxie Marlinspike dbc070cd65 Refactor the ciphertext message parsing and building. 11 years ago
Moxie Marlinspike 44d59d0fd1 Correctly store destination SMS state. 11 years ago
Moxie Marlinspike 51b9affe90 Add federation support for attachment retrieval. 11 years ago
Moxie Marlinspike 246cd10454 Bundle e164 and relay into PushDestination 11 years ago
Moxie Marlinspike ca3c82f581 Simply PushServiceSocket constructor. 11 years ago
Moxie Marlinspike 5b2caa0074 Make relay arguments consistent. 11 years ago
Moxie Marlinspike fa5ccc3f8a Support for server federation. 11 years ago
Moxie Marlinspike 25a2ad7289 Add directory refreshing at 24hr intervals. 11 years ago
Moxie Marlinspike eb4cc7f4e5 Add incoming message sources to active token dir. 11 years ago
Moxie Marlinspike 1ac32346c1 Graduate to a rebased and gradle world. 11 years ago
Moxie Marlinspike 2d083208cc Handle negative directory case and unlisted contacts. 11 years ago
Moxie Marlinspike 75cca3add1 Resign ourselves to a less sophisticated contact intersection method. 11 years ago
Moxie Marlinspike 073b1f69e3 Rollbacks, v2 sms-transport key exchanges, push identity conflicts.
1) Stop protocol rollbacks.

2) Handle v2 version key exchange messages.

3) Handle identity key conflicts on prekeybundle messages.
11 years ago
Moxie Marlinspike 5e6d39beea Move classes into library 11 years ago
Moxie Marlinspike 8f6590b738 Handle notifications and receiving push when locked. 11 years ago
Moxie Marlinspike 0dd36c64a4 Basic support for encrypted push-based attachments.
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.
11 years ago
Moxie Marlinspike cddba2738f Make encoding/decoding more explicit. 11 years ago
Moxie Marlinspike 0cc5837d7f Support encrypted transport, properly handle multiple recipients.
1) Add encryption support for the transport layer.  This obscures
   metadata from the push messaging provider.

2) Better support the direction multiple destination messages is
   headed (one unique message per recipient).
11 years ago
Moxie Marlinspike 68ec0a3727 Add last resort key and signaling key. 11 years ago
Moxie Marlinspike 45e380a5bb move constants into library 11 years ago
Moxie Marlinspike 1bbcedabd4 Added SMS transport support for PreKeyBundle messages.
1) Added SMS transport support.

2) Keep track of whether a PreKeyBundle message has gotten
   a response, and send them as subsequent messages until
   one has been received.
11 years ago
Moxie Marlinspike c3b8b62d32 Delete pre-key record when establishing agreement. 11 years ago
Moxie Marlinspike 43492b66c4 Rename EncryptedMessage 11 years ago
Moxie Marlinspike 7f642666dd Basic support for prekeybundle message delivery and receipt. 11 years ago
Moxie Marlinspike 1cc2762656 Refactor relationship between SessionCipher and Message. 11 years ago
Moxie Marlinspike d1969412fb Move PreKey ids to be Mediums, generate in circular buffer. 11 years ago
Moxie Marlinspike edb89ee3e9 Encode prekey as full JSON rather than protobuf blobs.
1) Split prekey messages out into full JSON.

2) Add support for retrieving prekeys.
11 years ago
Moxie Marlinspike 499de2d2bf Move prekey jsonifcation into the push code, add identity key. 11 years ago
Moxie Marlinspike b8f663b69c Move common crypto classes into TextSecureLibrary.
1) Move all the crypto classes from securesms.crypto.

2) Move all the crypto storage from securesms.database.keys

3) Replace the old imported BC code with spongycastle.
11 years ago
Moxie Marlinspike 2042ca6cb7 Generate "prekeys" at push registration time.
This generates a large number of key exchange messages and
registers them with the server during signup.
11 years ago
Moxie Marlinspike cfb7b8fcba Consider unregistered if authorization fails.
This should only occur if another device has registered with the
same number, effectively making the current device unregistered.
11 years ago
Moxie Marlinspike 03ff55db97 Actually set the preference to unregistered 11 years ago
Moxie Marlinspike fb378a6e00 Change attachment retrieval interface 11 years ago
Moxie Marlinspike 9287d413ac Support for incoming attachments.
1) Refactored MMS layer to use abstracted types.

2) Added support for retrieving attachment IDs.
11 years ago
Moxie Marlinspike 4bb337a3a0 Revised support for outgoing attachments 11 years ago
Moxie Marlinspike fd045f2354 Refactor MMS send/download to be synchronous.
1) Make the radio change a synchronous action with a timeout.

2) Move the send logic into an MmsTransport, in preparation for
   UniversalTransport composition.

3) Move the download logic into a synchronous receiver.
11 years ago
Moxie Marlinspike 53803630d4 Enable TextSecure universal transport. 11 years ago
Moxie Marlinspike d7070e7ecf Inserted the Registration activity into initial setup flow.
1) Added push messaging toggle to preferences.

2) Added push messaging registration screen to setup flow.

3) Migrated rest of SharedPreferences accessors to
   TextSecurePreferences.
11 years ago
Moxie Marlinspike 52e5274a2f Add registration notification support. 11 years ago
Moxie Marlinspike 0ed9da9a2c Strings and slight cleanup 11 years ago
Moxie Marlinspike 26dadfcb7a Move trust store to raw resource from asset. 11 years ago
Moxie Marlinspike 1ac06312a0 Move directory and push service socket into library. 11 years ago
Moxie Marlinspike a200d29514 Move most of Util into library 11 years ago
Moxie Marlinspike 21eee19380 Split into library project and add shared preferences layer of indirection. 11 years ago
Moxie Marlinspike 0958c30400 Stringify 11 years ago
Moxie Marlinspike 3634ba0b55 Registration with voice verification. 11 years ago
Veeti Paananen eb1b762a76 Improve password caching notification UI & UX
On Jelly Bean and above:

- Use the standard notification style for a better and consistent visual
  appearance

- Use the JB notification actions API for the locking action

- Use a lower notification priority to prioritize other notifications
  over TextSecure

On ICS:

- Use the existing custom notification layout

Everywhere:

- Allow opening the app itself from the notification

- Simplify strings: don't talk about a "cached passphrase" but about the
  app being "unlocked"/"locked"
12 years ago
nicky g a0c821f6ac set unread message count in notifications.
was not able to squash commit requesting new pull
12 years ago
Moxie Marlinspike d260cdcc9f Add giffgaff APN defaults. // FREEBIE 12 years ago
Moxie Marlinspike 496d5e21d2 Add Slovenia APN defaults 12 years ago
Veeti Paananen 6eb094c87e Show LED and ringtone setting values in their summaries
As instructed in the Android design guidelines. Also removed unnatural
capitalization.
12 years ago
Veeti Paananen f18324e2d6 Add tab swiping in the contact picker 12 years ago
Andy Irving 91b52bed18 Don't stick thread IDs in the Intent extra data. Always mark all threads read from notification. 12 years ago
Moxie Marlinspike 7c2fb74af4 Fix for bug that could drop unencrypted MMS on KitKat. 12 years ago
Moxie Marlinspike 7489f3463a Change the way notifications work for non-default KitKat.
Messages that are not "secure" (encrypted or key exchange) are
automatically marked as read if TextSecure isn't the default
KitKat SMS app.

This change in functionality allows people who aren't using
TextSecure as a default SMS app on KitKat to still receive
notifications when they get incoming encrypted messages.
12 years ago
Andy Irving 7f44b029fe use PendingIntent.FLAG_UPDATE_CURRENT in calls to PendingIntent.getActivity() to avoid re-using the same extra data on every intent. 12 years ago
Moxie Marlinspike c2b809c7c6 Fix for long multipart message bug on some ROMs. 12 years ago
Moxie Marlinspike e0aa7fd359 Let unencrypted messages through. 12 years ago
Veeti Paananen 10580a7f20 Fix crash when no SMS package is set 12 years ago
Moxie Marlinspike aad82e314d Fix duplicate MMS bug in KitKat.
1) Fix for typo that caused duplicate incoming MMS.

2) Only pay attention to "use for all" properties in < KitKat.
12 years ago
Moxie Marlinspike fda01796ab Merge pull request #421 from wsot/master
Fix issue #410: DecryptingPartInputStream could return more data than re...
12 years ago
Moxie Marlinspike b0216e1494 Finish KitKat compatibility details.
1) The system does actually enforce having a BROADCAST_SMS
   permission on the SMS receiver. Break out the "delivered"
   parts of this into a separate Receiver, so the permission
   won't trip up GB devices.

2) The system does actually enforce having "quick response"
   intents.  Add a no-op for now.

3) Add a "make default" prompt.

4) Update settings to reflect what's going on in KitKat.
12 years ago
Gabe Conradi e81756f443 Proper SMS support for KitKat. 12 years ago
Simeon Morgan 4931d7327b Switch to two-space indentation, remove inline comments. 12 years ago
Simeon Morgan adfa3c1b10 Optimised use of buffers when decrypting to avoid unnecessary array copying properly. 12 years ago
Simeon Morgan 3cc6344c8b Optimised use of buffers when decrypting to avoid unnecessary array copying 12 years ago
Simeon Morgan 546dd5485c Fix issue #410: DecryptingPartInputStream could return more data than requested, causing segfaults in BitmapFactory on Android 4.4. 12 years ago
Moxie Marlinspike 73bf21602a Move ReceiveKeyActivity back to themed dialog activity. 12 years ago
Moxie Marlinspike 798e3c0656 Merge pull request #384 from meskio/383_batch_selection
Add deselect to batch selection mode
12 years ago
Moxie Marlinspike 891e3aeb97 Merge pull request #381 from meskio/add_contact
New 'add contact info' option on the conversation contextual menu
12 years ago
rhodey 2c2a03e5e2 Enhanced MMS configuration prompts and processing.
1) Added a new message status to MmsDatabase to
   signify a pending MMS download which requires
   APN settings.

2) Added a database method to query MMS messages
   based on status.

3) Added login to SendReceiveService for processing
   of MMS pending APN information.

4) Moved all APN/MMS settings into ApnPreferencesActivity
   and transformed PromptApnActivity into a simple
   informational activity.

5) Added logic to check for APN settings on send and
   receive of all MMS (media, group, email) and direct
   user to PromptApnActivity then ApnPreferencesActivity
   if necessary.

6) Vocab/grammar adjustments.
12 years ago
Ruben Pollan c7b39eca11 Add deselect to batch selection mode 12 years ago
Ruben Pollan 3d690faff0 New 'add contact info' option on the conversation contextual menu
This option is used to add phone numbers from the contact list on the
messages.
12 years ago
Moxie Marlinspike f3fdde6040 Merge pull request #376 from meskio/extension_saving_attachment
Set the right extension on saving an attachment
12 years ago
Moxie Marlinspike f49c62793b Merge pull request #377 from meskio/resend_message_on_fail2
Allow to resend a failed message
12 years ago
Ruben Pollan 04eafd5fab Allow to resend a failed message
Add an option to the context menu of the message to resend it if it has
failed.
12 years ago
Ruben Pollan 73b1e3f3d4 Set the right extension on saving an attachment 12 years ago
Moxie Marlinspike 8d115562f0 Merge branch 'master' of github.com:WhisperSystems/TextSecure 12 years ago
Moxie Marlinspike f26b9070f2 Update PRNG fix code sample.
Google updated their code sample to account for restrictive
SELinux configurations on some devices.
12 years ago
Moxie Marlinspike 2cbc4d3b0a Merge pull request #372 from meskio/key_notification
Upgrade notification KeyCachingService code to use NotificationCompat.Builder
12 years ago
Moxie Marlinspike ee8c8530bf Merge pull request #373 from d3sre/issues-273
Issues 273
12 years ago
Moxie Marlinspike 763e4b1b27 Merge pull request #367 from nikolai-r/master
add option to disable audible inthread notifications
12 years ago
Desiree Sacher 4f49216103 corrected class info of NullPointerException messages 12 years ago
Desiree Sacher ed4c8cd799 extended log of encrypted and plaintext messages NullPointerException 12 years ago
Ruben Pollan 4826dbcc34 Upgrade notification KeyCachingService code to NotificationCompat.Builder 12 years ago
Nikolai Rusakov 2cf7f82f07 closes #367 - add option to disable audible inthread notifications 12 years ago
Moxie Marlinspike 1c8f8666ba Make the switch to gradle!
1) ABS is now published as an AAR, so we can eliminate all local
   dependencies and bundled jars.

2) Upgrade to ABS 4.4.0 (The Last Release) and deal with the loss
   of Sherlock.Dialog by faking it with our own themes.

3) Remove all traces of ant. The modern world is here.
12 years ago
joshua stein 99e3e596bb Correctly preserve MMS image aspect ratios. 12 years ago
Steve R 45f4faaf4c Fix for timeout interval bug
Regardless of which theme is used, the text color for the timeout
  interval was being set to black. This made it difficult to
  read when using the Dark Theme.
12 years ago
Moxie Marlinspike b14d9d84ad Fix for Android PRNG bug.
There is apparently an Android vulnerability with the PRNG it
provides through the JCE. This uses their suggested code to patch
the PRNG, and provides the option to regenerate identity keys.

http://android-developers.blogspot.com/2013/08/some-securerandom-thoughts.html
12 years ago
Moxie Marlinspike 8281ef18d4 Fix for ShortBufferException problem introduced in Android 4.3
Not really sure how it's possible for the system to give us an
extra block of data, but it does if both the input and output
buffers are sized the same during the first decrypt.  This
fixes things, but I wish I better understood why it was broken.
12 years ago
Moxie Marlinspike 7bd520cb41 Fix for batch selection bug 12 years ago
Moxie Marlinspike 7d07d56fc3 Fix for 'bad encrypted message' errors.
1) There was a regression in the outgoing multipart transport
   logic, such that the same 'identifier' byte would be used
   for all messages (0).  This now works correctly.

2) Added some additional heuristics on the receiving side.
   Now mutlipart containers are only valid for 1hr, and are
   considered invalid if the container size is different from
   the multipart message size.
12 years ago
Moxie Marlinspike 4281df7a28 display emoji correctly on devices of all densities 12 years ago
Moxie Marlinspike c827f0a2a7 Merge pull request #249 from joeykrim/patch-1
Small clarification in the comments on the types of SMS to ignore
12 years ago
joeykrim 8464bc775a Removed extra comparisons by converting original phrase to uppercase, then comparing
Removed previous multiple comparisons that were variations of capitalizing the same phrase by converting the original phrase to all uppercase and then comparing
12 years ago
joeykrim c89cac8785 Changed new Thread() to use new AsyncTask()
Changed new Thread() to use new AsyncTask() - same as was done in src/org/thoughtcrime/securesms/service/KeyCachingService.java - d97252d8d6
12 years ago
Moxie Marlinspike dfa710a6fc Don't use ConnectivityManager checkRouteToHost for IPv6
T-Mobile LTE now uses IPv6 addresses for their MMSC, which are
incompatible with ConnectivityManager's checkRouteToHost.
12 years ago
joeykrim 87e8214bae Small clarification in the comments on the types of SMS to ignore 12 years ago
Moxie Marlinspike d97252d8d6 Add ability to disable local encryption passphrase. 12 years ago
Moxie Marlinspike 68b82c168e Add in-app language selection support. 12 years ago
Moxie Marlinspike 4977092f7a Add support for soft keyboard 'enter' key. 12 years ago
Moxie Marlinspike 93c222fe9c Added "recent emoji" panel as an LRU cache. 12 years ago
Moxie Marlinspike 71e161c792 Switched to new emoji lookup pattern, added rendering support. 12 years ago
Moxie Marlinspike 2e31cfed11 Basic support for composing emoji 12 years ago
Moxie Marlinspike 288b416988 Fix NPEs 12 years ago
Moxie Marlinspike e00914c977 Fix QR Code Regression. 12 years ago
Moxie Marlinspike aa25f94291 Enhanced import/export support.
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.
12 years ago
Moxie Marlinspike 903ab92f5f Basic navigation drawer support. 12 years ago
Moxie Marlinspike 5263ac1f1a Theme Support
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.
12 years ago
Moxie Marlinspike 2928abc98f Catch attempts to dial on devices with no dialer. 12 years ago
Moxie Marlinspike 8524cc5598 Resolved a few MMS issues.
1) Fixed the "Unsupported Encoding!" problem.

2) Workaround for the Sprint issue, where the MMSC is adding a single
   extra byte to the end of each encrypted message.

3) Fixed the "large blob of base64 text" on encrypted MMS problem.
12 years ago
Moxie Marlinspike d2a78ea84c Fix for contrived NPE on invalid recipient during conversation compose. 12 years ago
Moxie Marlinspike ad1d927437 Fix for NPE when group selection fragment is no longer attached to activity. 12 years ago
Moxie Marlinspike 0534f9d95a Fix for NPE on null FROM in MMS header. 12 years ago
Moxie Marlinspike dda5bc8838 Add a 'mark as read' button to expanded notifications. 12 years ago
Moxie Marlinspike 8c1ca6c9e0 Clean up identity key view activity 12 years ago
Moxie Marlinspike 95eb62190a Remove checkboxes from the multi-select UI 12 years ago
Moxie Marlinspike 3743c57edd Clean up list of identity keys. 12 years ago
Moxie Marlinspike 5e2b31af60 Add appropriate text for manual case when identity is trusted. 12 years ago
Moxie Marlinspike 24fc93e9ae Switch to a more heavily TOFU model for identity keys.
1) There is no longer a concept of "verified" or "unverified."
   Only "what we saw last time" and "different from last time."

2) Let's eliminate "verify session," since we're all about
   identity keys now.

3) Mark manually processed key exchanges as processed.
12 years ago
Moxie Marlinspike e080449383 Fix for NPE on import 12 years ago
Moxie Marlinspike a0a6c3f211 Handle failed bitmap decoding 12 years ago
Moxie Marlinspike 3df67a1643 Properly return unknown recipient from SMS db on empty. 12 years ago
Moxie Marlinspike b99cca8bfa Fix for NPE on failed icon click. 12 years ago
Moxie Marlinspike c86e414c5f Include (somehow missed) support for send/receive encrypted MMS. 12 years ago
Moxie Marlinspike e5f634ba45 Fix for NPE 12 years ago
Moxie Marlinspike be34f30719 Lower maximum size of cursor window on DB upgrade.
On some systems, the DB upgrade was failing because there were
too many rows for the cursor window.  This moves some looping
operations into single update statements by using the substr()
command, and chunks the rest using a series of LIMITs.
12 years ago
Moxie Marlinspike ad6760b62c Correctly handle deferred processing of key exchange message when locked. 12 years ago
Moxie Marlinspike 3d49e90779 Add Virgin Mobile US to ApnDefaults. 12 years ago
Moxie Marlinspike ef554ed265 Remove leaky logging. 12 years ago
Moxie Marlinspike 5c8fa148ca Limit UniversalTransport to SMS for now. 12 years ago
Moxie Marlinspike 5d910a2997 Store last seen application version number at install time. 12 years ago
Moxie Marlinspike e07c1a8e92 Handle failed MMS connectivity state appropriately. 12 years ago
Moxie Marlinspike 43214a854c Fix for IllegalArgumentException with null URL host. 12 years ago
Moxie Marlinspike ff41c6763d Fix for detached illegalstateexception 12 years ago
Moxie Marlinspike 6fedc6b737 Fix for double-click NPE? 12 years ago
Moxie Marlinspike 7090ca4a42 Don't remote-encrypt key exchange messages 12 years ago
Moxie Marlinspike 81107a98eb Send m-notifyresp-ind after retrieving MMS 12 years ago
Moxie Marlinspike a057b628eb Added Rogers APN defaults 12 years ago
Moxie Marlinspike 01658cc454 Fix for notification preference regression 12 years ago
Moxie Marlinspike 1aa84b145f Add 'mark all as read' option 12 years ago
Moxie Marlinspike b1b9846971 merge liliakai-settings 12 years ago
Moxie Marlinspike c35aa09806 Filter MMS weirdness 12 years ago
Moxie Marlinspike 50fae64330 Replace LinkedHashMap with a SoftReference LRUCache. Add Slide cache. 12 years ago
Moxie Marlinspike a362c8755a Don't check for auto-initiation on group threads. 12 years ago
Moxie Marlinspike 0b172cebce Use DB sending type rather than in-memory hashtable. 12 years ago
Moxie Marlinspike 79c554fcc7 Fixed group in-thread notifications 12 years ago
Moxie Marlinspike 723fb4ffdd MMS and Group Messaging Improvements
1) Display the individual sender name in a group conversation.

2) Add an "address" column to MmsDatabase and keep FROM there.

3) Remove all blocking operations from MmsDatabase.Reader path.

4) Strip SMIL and other undisplayable parts from part count.

5) Fix places where messages weren't being correctly decrypted.
12 years ago
Moxie Marlinspike 2305a648fb Minor refactoring 12 years ago
Moxie Marlinspike e80882b83b Locally encrypted messages no longer show as ciphertext notifications. 12 years ago
Moxie Marlinspike 7c47ea5cec Make MMS more asynchronous and consistent with new SMS types.
1) We now delay MMS notifications until a payload is received,
   or there's an error downloading the payload.  This makes
   group messages more consistent.

2) All "text" parts of an MMS are combined into a second text
   record, which is stored in the MMS row directly rather than
   as a distinct part.  This allows for immediate text loading,
   which means there's no chance a ConversationItem will resize.

   To do this, we need to include MMS in the big DB migration
   that's already staged for this application update.  It's also
   an "application-level" migration, because we need the MasterSecret
   to do it.

3) On conversation display, all image-based parts now have their
   thumbnails loaded asynchronously.  This allows for smooth-scrolling.
   The thumbnails are also scaled more accurately.
12 years ago
Moxie Marlinspike dd0aecc811 First cut at group messaging refactor. 12 years ago
Moxie Marlinspike 83e260436b Major storage layer refactoring to set the stage for clean GCM.
1) We now try to hand out cursors at a minimum.  There has always been
   a fairly clean insertion layer that handles encrypting message bodies,
   but the process of decrypting message bodies has always been less than
   ideal.  Here we introduce a "Reader" interface that will decrypt message
   bodies when appropriate and return objects that encapsulate record state.

   No more MessageDisplayHelper.  The MmsSmsDatabase interface is also more
   sane.

2) We finally rid ourselves of the technical debt associated with TextSecure's
   initial usage of the default SMS DB.  In that world, we weren't able to use
   anything other than the default "Inbox, Outbox, Sent" types to describe a
   message, and had to overload the message content itself with a set of
   local "prefixes" to describe what it was (encrypted, asymetric encrypted,
   remote encrypted, a key exchange, procssed key exchange), and so on.

   This includes a major schema update that transforms the "type" field into
   a bitmask that describes everything that used to be encoded in a prefix,
   and prefixes have been completely eliminated from the system.

   No more Prefix.java

3) Refactoring of the MultipartMessageHandler code.  It's less of a mess, and
   hopefully more clear as to what's going on.

The next step is to remove what we can from SmsTransportDetails and genericize
that interface for a GCM equivalent.
12 years ago
Moxie Marlinspike 303d1acd45 Initial client support for GCM message send/receive 12 years ago
Moxie Marlinspike 2f39283da3 Initial GCM registration 12 years ago
Moxie Marlinspike f2475491fe Fix for NPE on null encrypted MMS messages. 12 years ago
Lilia Markham 815613cfaa Reorganize settings menu
Mostly xml work, with one small hack to fix the sub menu themes, found
here: http://code.google.com/p/android/issues/detail?id=4611#c35
12 years ago
Lilia Markham e3c5e837e1 Remove sign key exchange preference
Yet another setting that most users will never touch. Workaround for
those who would is to use a different identity key per device.

Let this be a sacrifice to the android settings design pattern gods.
12 years ago
Lilia Markham 40eca5e0f6 Remove whitespace tag preference
The vast majority of users will never uncheck this option. Those who
would can send an unencrypted untagged message through the system sms
app. It would then be stored locally in the clear, but it was already
transmitted in the clear and likely stored on the recipient's side in
the clear, so the security gains of locally encrypting are low, and
again, this seems an extremely rare edge case.

By android design pattern specs for the settings menu, we should kill
this preference.
12 years ago
Moxie Marlinspike fcea8ebc3f Added Telenor Norway to APN Defaults 12 years ago
cavanm 8e2288205c Use APN defaults when no other APN information is available.
Provides an in-app source for APN info for use in the case that the
device store is unavailable and the user hasn't provided local
connection parameters.

Only covers T-Moble USA, AT&T, and Verizon right now. Only T-Mobile is
tested. Other carriers can be added and tested on an ongoing basis.
12 years ago
Moxie Marlinspike fb21c09dbe Catch NPE thrown by APN provider. 12 years ago
Moxie Marlinspike 5df88cc0a7 Scrub recipients for MMS messages so they'll be valid PLMN. 12 years ago
Moxie Marlinspike ecaaff50da Switch UA to Android default and added x-wap-profile header 12 years ago
Moxie Marlinspike cdd6d59e6e Remove send button smart enable/disabled.
Temporarily remove this functionality, since it doesn't account for
attachments yet.
12 years ago
Jake McGinty 674cd68ebd Modern-style Android chat icons (incl. secure icon)
Make the send-button appearance more similar to the default Android
messenger application
12 years ago
Moxie Marlinspike b05c840616 Fix for MMS send bug with an APN proxy. 12 years ago
Moxie Marlinspike 58961fe0a8 Minor spelling correction. 12 years ago
Moxie Marlinspike bb3777aa68 Fix for viewing group recipients without contact information. 12 years ago
Moxie Marlinspike 07c59d969a Prompt user for APN details when missing.
If TextSecure is running on a device without APN details, we prompt
the user to manually specify them when the user goes to send an MMS
message.
12 years ago
Moxie Marlinspike 01fdb1115d We don't support unknown content lengths yet. 12 years ago
Moxie Marlinspike 2e55e9cdca Guard NPE 12 years ago
Moxie Marlinspike 6230abb524 Add synchronized access to cache 12 years ago
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.
12 years ago
Moxie Marlinspike 48576dbb58 Catch mysterious SMS too large exception. 12 years ago
Moxie Marlinspike 5ca7b1080c Fix for concurrentmodificationexception on race condition. 12 years ago
Moxie Marlinspike eb9b2ef318 Fix for NPE on null mms bytes. 12 years ago
Moxie Marlinspike 6bd0f35787 Sometimes querying the APN DB throws this exception as well. 12 years ago
Moxie Marlinspike 2397176d9e Search support in ConversationList for <3.0 devices.
Switch to the newly-introduced ActionBarSherlock SearchView.
12 years ago
Moxie Marlinspike 34822557a6 Catch exception triggered by bug in telephony provider during import. 12 years ago
Moxie Marlinspike bac6b78b11 Clear passphrase field on invalid entry. 12 years ago
Moxie Marlinspike 5bf5b404a1 Fix for notification NPE on unknown sender. 12 years ago
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.
12 years ago
Moxie Marlinspike df05508a6f Switch to AndroidHttpClient and explicit targeting. 12 years ago
Moxie Marlinspike 1ff4fd842c Pass on incoming messages until DB is imported. 12 years ago
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.
12 years ago
Moxie Marlinspike 0a7181670c Radio updates happen frequently on some phones, switch to dynamic. 12 years ago
Moxie Marlinspike d0d85ea52c Fix for duplicate message bug. 12 years ago
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.
12 years ago
Moxie Marlinspike 90280a62ae Poor man's styling. 12 years ago
Moxie Marlinspike 2277dbd572 Localize ok/cancel 12 years ago
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.
12 years ago
Moxie Marlinspike 71f43075a9 Distinguish unread threads with background color. 12 years ago
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.
12 years ago
Moxie Marlinspike 49ea135e37 Don't auto-set thread to read on send. 12 years ago
Moxie Marlinspike a29120d911 Fix for IndexOutOfBoundException (race condition on Recipients resolution) 12 years ago
Moxie Marlinspike b044a68168 Fix for mysterious 'anonymous sender' NPE. 12 years ago
Moxie Marlinspike 01a5c889b0 Export stray strings for localization. 12 years ago
Moxie Marlinspike dcf73cd009 Fix for 'group message' regression. 12 years ago
Moxie Marlinspike bf92de394b Add support for resuming compose drafts. 12 years ago
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.
12 years ago
Moxie Marlinspike 288e2b5572 Suppport receiving 'share' actions from other apps. 12 years ago
Moxie Marlinspike 232e7bba2d A conversation can't be trimmed to 0. 12 years ago
Moxie Marlinspike fe43ef65ab Support for auto-deleting old messages beyond a certain conversation thread length. 12 years ago
Moxie Marlinspike a185750bb7 Preserve ConversationList scroll state in between onPause/onResume. 12 years ago
Moxie Marlinspike 5cb02445e8 Add support for "delivery notifications." Currently SMS-only. 12 years ago
Moxie Marlinspike 118560cf0d Fix for DB creation and migration with new date schema changes. 12 years ago