Commit Graph

124 Commits

Author SHA1 Message Date
Moxie Marlinspike
5e6d39beea Move classes into library 2014-01-06 14:35:53 -08:00
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.
2014-01-06 14:34:47 -08:00
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.
2014-01-06 14:30:03 -08:00
Moxie Marlinspike
0ed9da9a2c Strings and slight cleanup 2014-01-06 14:21:50 -08:00
Moxie Marlinspike
7eef93c829 Stringify and clean layout 2014-01-06 14:19:05 -08:00
Moxie Marlinspike
3634ba0b55 Registration with voice verification. 2014-01-06 14:18:30 -08:00
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"
2013-12-22 04:48:39 +02:00
Veeti Paananen
bee964dcf8 Improve appearance of "no contacts" indicators by centering them.
Also remove pointless scroll views.
2013-12-16 22:27:10 +02:00
Veeti Paananen
f18324e2d6 Add tab swiping in the contact picker 2013-12-16 22:17:52 +02:00
Veeti Paananen
89ae5ed4ed Clean up password unlock layout
Remove unnecessary and redundant nested layouts, fix the alignment of
the unlock button to the right edge of the screen, use cleaner margins
and replace the deprecated fill_parent sizes with match_parent.
2013-12-02 23:19:42 +02:00
Veeti Paananen
9ddfa6499c Gingerbread pls go
Look like an Android app from 2013.

Remove the redundant Gingerbread button styles from buttons to
automatically use the Holo theme on phones that don't run a 3+ year old
operating system.

Create a new style for horizontal progress bars that uses the Holo
progress bar style on v11 and above.
2013-12-01 01:36:21 +02:00
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.
2013-10-20 16:56:34 -07:00
Moxie Marlinspike
d97252d8d6 Add ability to disable local encryption passphrase. 2013-07-01 10:15:36 -07:00
Moxie Marlinspike
7f532fc37f Fix dark theme recipients editor font color. 2013-06-29 15:34:18 -07:00
Moxie Marlinspike
767d790b3d Dark theme fixes.
1) Make the conversation background all black with no column.

2) Fix the font color on identity key review.
2013-06-29 10:33:58 -07:00
Moxie Marlinspike
93c222fe9c Added "recent emoji" panel as an LRU cache. 2013-06-29 09:51:08 -07:00
Moxie Marlinspike
2e31cfed11 Basic support for composing emoji 2013-06-27 20:57:27 -07:00
Moxie Marlinspike
408672b0b8 Fix or invisible delivery status regression with MMS. 2013-06-26 09:19:50 -07:00
Moxie Marlinspike
614e962110 Remove unused resources. 2013-06-25 10:47:59 -07:00
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.
2013-06-24 21:02:30 -07:00
Moxie Marlinspike
903ab92f5f Basic navigation drawer support. 2013-06-22 21:44:12 -07:00
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.
2013-06-21 12:14:40 -07:00
Moxie Marlinspike
8c1ca6c9e0 Clean up identity key view activity 2013-05-23 18:54:16 -07:00
Moxie Marlinspike
95eb62190a Remove checkboxes from the multi-select UI 2013-05-23 18:37:04 -07:00
Moxie Marlinspike
3743c57edd Clean up list of identity keys. 2013-05-23 17:47:42 -07:00
Moxie Marlinspike
5e2b31af60 Add appropriate text for manual case when identity is trusted. 2013-05-23 17:17:28 -07:00
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.
2013-05-23 16:36:24 -07:00
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.
2013-05-06 08:40:55 -07:00
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.
2013-05-06 08:40:55 -07:00
Moxie Marlinspike
303d1acd45 Initial client support for GCM message send/receive 2013-05-06 08:40:55 -07:00
Moxie Marlinspike
2f39283da3 Initial GCM registration 2013-05-06 08:40:55 -07:00
Moxie Marlinspike
09ce848b16 Remove default disabled tint from send button. 2013-03-15 07:47:09 -07:00
Jake McGinty
674cd68ebd Modern-style Android chat icons (incl. secure icon)
Make the send-button appearance more similar to the default Android
messenger application
2013-03-10 16:05:35 -07:00
Lilia Markham
5dabe1069d Avoid auto-scroll after deleting a message
See WhisperSystems/TextSecure#139

This fix involves setting transcriptMode to normal on conversation view,
which resolves the issue but comes with the side effect that if you
have scrolled away from the bottom of the list, new incoming messages
will not trigger auto-scroll as they arrive.
2013-03-05 01:33:55 -08:00
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.
2013-03-04 17:43:04 -08:00
Moxie Marlinspike
6c1572e0ec Layout touchup 2013-02-19 10:36:04 -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
5cb02445e8 Add support for "delivery notifications." Currently SMS-only. 2013-01-06 21:38:36 -08:00
Moxie Marlinspike
01f5ec5ab8 Align date for GB devices. Compromise nice checkbox alignment. 2012-11-20 20:56:21 -08:00
Moxie Marlinspike
9bf434cb3b The <= GB QuickContactBadge is ugly. Let's do something nicer for them.
Unfortunately GB is 50% of the TS userbase, best not to neglect them.
2012-11-20 20:14:30 -08:00
Moxie Marlinspike
187ec95817 Add collating support for group SMS/MMS messages.
1) When sending an SMS or MMS to multiple recipients, only show one
ConversationItem, but provide statistics on the number of recipients
delivered to.

2) Still break up the messages for secure and insecure messages.
2012-10-29 16:51:42 -07:00
Moxie Marlinspike
bb0ec65744 Include source origin in string key name.
This should help eliminate string duplicates, as well as provide
visibility into where strings in a resource file are being used.
2012-09-19 19:56:04 -07:00
Moxie Marlinspike
4715512194 Fixed auto-initiate layout on GB. 2012-09-12 19:47:40 -07:00
Moxie Marlinspike
a834ccad55 Fix for 2.3 ugliness. 2012-09-09 19:49:02 -07:00
Moxie Marlinspike
3d3db421d3 Lint warning changes. 2012-09-09 16:10:46 -07:00
Moxie Marlinspike
7a7dba66ad Update passphrase caching notification strategy.
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.
2012-09-09 09:18:17 -07:00
Moxie Marlinspike
312942439d Fixed RecipientsPanel white-on-white weirdness for Android <= 2.3.
Only appeared when the RecipientsEditor was in the unselected state.
2012-09-07 21:34:29 -07:00
Moxie Marlinspike
f39b8e5fc8 Fix up whitespace tagging and tag detection prompt.
1) Fix up the whitespace tagging so that it's a little more strict.

2) Don't display whitespace tags that we add to our own messages.

3) Make the tag detection prompt a little more visually pleasing.
2012-09-07 21:21:12 -07:00
Moxie Marlinspike
4c3b7cbe08 Extract TextSecure strings for i18n.
1) Change all instances which use concatenation to build strings
with variables in them to use string formatting instead.

2) Extract all string literals from layouts and menus into strings.xml

3) Extract all string literals from code into strings.xml
2012-09-07 21:19:37 -07:00
Moxie Marlinspike
07305d939a Fix display problem on <= Gingerbread devices. 2012-08-06 19:40:59 -07:00
Moxie Marlinspike
bffeed7cd3 Removed old drawable resources. 2012-08-04 16:52:07 -07:00
Moxie Marlinspike
7883d09573 Fix success/failure status on conversation item. 2012-08-03 17:34:09 -07:00
Moxie Marlinspike
cffedb09a1 Do migration in backgrounded service. 2012-08-02 20:23:41 -07:00
Moxie Marlinspike
31d59dddef Remove key exchange indicator from list view, spruce up create passphrase dialog. 2012-07-31 17:02:50 -07:00
Moxie Marlinspike
bc8f26c591 Correctly initialize conversation after message sent. 2012-07-31 16:27:58 -07:00
Moxie Marlinspike
853e12693d Fix Auto/Save activities for GB. 2012-07-31 15:48:14 -07:00
Moxie Marlinspike
edb286a44d Add search support for v11+ 2012-07-31 13:53:00 -07:00
Moxie Marlinspike
e641a28cf5 New lock icons. 2012-07-30 17:51:31 -07:00
Moxie Marlinspike
5918353fc7 Updated lock icon image 2012-07-30 17:28:55 -07:00
Moxie Marlinspike
1ff278dc81 Update the key exchange icon look. 2012-07-30 17:15:49 -07:00
Moxie Marlinspike
7cab26750b Switch to Contextual Action Bar goodness. 2012-07-26 16:21:45 -07:00
Moxie Marlinspike
a66cc636c6 Fix review identity activity UI. 2012-07-23 21:43:55 -07:00
Moxie Marlinspike
a1b077c349 Fix view identity key QR code action. 2012-07-23 13:50:12 -07:00
Moxie Marlinspike
78998d0c93 Clean up key/identity verification Activites.
1) Get ride of the crazy button situation.
2) Actionbar-ify and abstract out the common actions.
3) Switch to full activities from dialog themes.
2012-07-23 13:42:29 -07:00
Moxie Marlinspike
863e1c6508 Fix the look of tabbed multi-contact selector.
1) Updated to ActionBar style.
2) Split out into fragments.
3) Switch to cursor loaders.
2012-07-20 22:23:25 -07:00
Moxie Marlinspike
c7e891eda4 Fix passphrase prompt dialog activity. 2012-07-19 22:54:44 -07:00
Moxie Marlinspike
a7cc47d259 Update conversation item style.
1) Don't print sender/recipient name in message body.
2) Do the split conversation icon view.
3) Adjust font sizes and colors.
2012-07-19 19:23:49 -07:00
Moxie Marlinspike
1ac1cec634 Update look for RecipientsPanel.
1) Make the "add contacts" graphic more holo-ific.
2) Adjust the graphic position on holo-themed devices.
2012-07-19 15:16:07 -07:00
Moxie Marlinspike
b377fe84df New design for Conversation Activity.
1) Move to Fragments for the list view.
2) Switch to CursorLoader from my jankey self-managed cursor.
3) Add session security logic to the ActionBar.
4) Fix colors to be less ugly.
2012-07-19 14:22:03 -07:00
Moxie Marlinspike
3d9475676f Move to a Fragment world.
1) Start breaking the UI out into Fragments.
2) Switch to Cursor loaders from managed cursors.
3) Switch to inflated menu resources.
4) Break out some basic functionality into helper classes.
2012-07-18 15:35:13 -07:00
Moxie Marlinspike
b93bb69c28 Restyle conversation list view.
1. New look for quick contact badges.
2. No more unread indicator, replace with bolded text.
3. Style message count with color rather than parens.
4. Remove "New Message" item, add as item in action bar instead.
2012-07-16 21:35:32 -07:00
Moxie Marlinspike
63250b33a8 Switch to QuickContactBadge. 2012-07-16 20:20:13 -07:00
Moxie Marlinspike
44c221c9f1 Remove non-themed theme madness. 2012-07-16 19:56:10 -07:00
Moxie Marlinspike
bbea3fe1b1 Initial Project Import 2011-12-20 10:20:44 -08:00