Compare commits

..

1183 Commits

Author SHA1 Message Date
Moxie Marlinspike 28232fc2a5 Bump version to 2.12.0
// FREEBIE
2015-04-16 12:34:42 -07:00
Moxie Marlinspike efcdb7eb66 Add GroupId to PushNotificationReceivedJob
Pending message requests should probably be made sequentially.

// FREEBIE
2015-04-16 12:22:05 -07:00
Moxie Marlinspike 8550b4b051 Updated language translations
// FREEBIE
2015-04-16 12:12:57 -07:00
Moxie Marlinspike 7ba75c3291 Use REST interface instead of WebSockets on GCM events.
Closes #2994

// FREEBIE
2015-04-16 11:50:40 -07:00
Moxie Marlinspike 55ba57d056 Update README
Closes #2984
2015-04-16 08:46:42 -07:00
agrajaghh 8de695585d remove unused EncryptedSmsCharacterCalculator
Closes #3000

//FREEBIE
2015-04-16 08:42:00 -07:00
Carey Metcalfe 7724964a36 Correct the notification repeat interval
Switch to 2min from 10sec.

Closes #3002
2015-04-16 08:39:40 -07:00
Jake McGinty 64fc83326f bump sdk to 22, update notifications
Notification updates include:

1) Setting theme colors
2) Using high-res contact photos
3) Updating the notification icon to latest

Closes #2935
Fixes #2923
Fixes #2732
Fixes #2548

// FREEBIE
2015-04-16 08:38:31 -07:00
agrajaghh c1af7557b5 new image for ic_missing_thumbnail_picture
Closes #2955
2015-04-15 13:39:39 -07:00
Moxie Marlinspike 262c1e47ad Fix NPE when outgoing media message is deleted.
// FREEBIE
2015-04-14 10:01:33 -07:00
Moxie Marlinspike 3e29bf4e54 Bump version to 2.11.1
// FREEBIE
2015-04-13 15:31:30 -07:00
Jake McGinty 6d2b87d385 don't change cursor if adapter is null
Fixes #2970
Closes #2977

// FREEBIE
2015-04-13 14:13:17 -07:00
Jake McGinty a28408b29f enforce NonNull on incoming MMS content location
Fixes #2959
Closes #2975

// FREEBIE
2015-04-13 13:47:27 -07:00
Jake McGinty 4a9028aedd only set non-null bitmaps for notifications
Fixes #2960
Closes #2979

// FREEBIE
2015-04-13 13:45:46 -07:00
Jake McGinty 7aaedf500f fix off-thread UI interactions in ConversationItem
Fixes #2966
Closes #2973

// FREEBIE
2015-04-13 10:35:30 -07:00
Jake McGinty cb84cc39ce fix missing line numbers in stack traces
Fixes #2958
Closes #2972

// FREEBIE
2015-04-13 10:20:11 -07:00
Moxie Marlinspike 1c90b59bb8 Don't attempt send failure notifications for deleted messages.
Fixes #2963

// FREEBIE
2015-04-13 08:57:20 -07:00
Moxie Marlinspike b9541a65b0 Fix list partitioning helper.
Fixes #2934

// FREEBIE
2015-04-12 10:07:30 -07:00
Jake McGinty 77e846d24e Fix cursor leak when resolving contact photos
Closes #2933

// FREEBIE
2015-04-10 10:07:22 -07:00
Moxie Marlinspike 568c69c9be Bump version to 2.11.0
// FREEBIE
2015-04-09 16:07:46 -07:00
Moxie Marlinspike ffe35bef93 Update language translations.
// FREEBIE
2015-04-09 14:54:11 -07:00
Jake McGinty 9b9363f18a add back scrollbars for conversation list
// FREEBIE
2015-04-09 14:38:03 -07:00
Adrian Chifor 58664fcddb Call changeMasterSecretPassphrase in AsyncTask
Fixes #2768
Closes #2893
2015-04-09 12:41:52 -07:00
Rhodey Orbits 857135aab1 Fix media thumbnail view operation.
An extreme edge case wasn't happening on the UI thread.

Fixes #2800
Closes #2801

// FREEBIE
2015-04-09 12:28:45 -07:00
Jake McGinty 1cc581aed8 Migrate conversation list to RecyclerView
Closes #2890

// FREEBIE
2015-04-09 12:21:50 -07:00
Rhodey Orbits f5724795cf Update thread timestamp on draft creation.
Fixes #1055
Closes #2909

// FREEBIE
2015-04-09 11:29:37 -07:00
Jake McGinty e4e24f7ae5 Enforce media constraints on group messages
Fixes #2913
Closes #2917

// FREEBIE
2015-04-09 11:21:16 -07:00
Jake McGinty 1f9a0fab3c Fix sendComplete UI updates on destroyed views
Fixes #2915
Closes #2924

// FREEBIE
2015-04-09 11:19:16 -07:00
Moxie Marlinspike b692d48b98 Bump version to 2.10.2
// FREEBIE
2015-04-08 10:15:53 -07:00
Jake McGinty 01020c1c09 Fix missing MasterSecret in PartProvider
Fixes #2706
Closes #2910

// FREEBIE
2015-04-06 15:05:54 -07:00
Veeti Paananen 39e0639b4b Fix identity verification screen design issues
- Corrected improper usage of ScrollView that would cut off contents
  when taller than the layout.

- Adjusted margins and paddings to match Material specs (20dp from
  sides).

- Fixed monospaced font being overridden on Lollipop.

Fixes #2904. FREEBIE.
Closes #2906.
2015-04-06 13:21:05 -07:00
Veeti Paananen 86253f3772 Preserve shortcuts to old launcher activity
Add an activity alias for RoutingActivity that points to the new
launcher activity. Fixes #2878. Closes #2887.
2015-04-06 13:11:55 -07:00
Rhodey Orbits efb4f388a5 set list adapter to null when appropriate
set list adapter to null when (recipients or threadId == null) to
prevent old messages from being displayed when forwarding a
message to a recipient for which there is no existing
 conversation.

Fixes #2883
Closes #2884

// FREEBIE
2015-04-06 10:22:34 -07:00
Moxie Marlinspike b77afa8903 Upgrade to libtextsecure 1.2.5
Fixes #2703

// FREEBIE
2015-04-05 15:44:56 -07:00
Moxie Marlinspike 794197c068 Bump version to 2.10.1
// FREEBIE
2015-04-03 15:00:43 -07:00
Jake McGinty 34fa05cccc Fix multi-thread intents launching a conversation
Fixes #2877
Closes #2880

// FREEBIE
2015-04-03 14:48:38 -07:00
agrajaghh 1a5bd37849 translate "Message Details"
Fixes #2875
Closes #2876

//FREEBIE
2015-04-03 18:46:47 +02:00
Moxie Marlinspike da03b38c84 Bump version to 2.10.0
// FREEBIE
2015-04-03 08:47:22 -07:00
Moxie Marlinspike 1d71a32b41 Update language translations.
// FREEBIE
2015-04-03 08:30:47 -07:00
Moxie Marlinspike 0efdada928 Prompt user to rate app
Closes #2841

// FREEBIE
2015-04-02 17:30:30 -07:00
Jake McGinty 0c7dba6d43 Pass MasterSecret into pref fragments
Fixes #2868
Closes #2870

// FREEBIE
2015-04-02 17:22:33 -07:00
Jake McGinty c50658a4f5 Revert "Fix re-registering missing MasterSecret"
This reverts commit beceee846a.
2015-04-02 17:22:31 -07:00
McLoo afd6ab75f8 Close keyboard when entering message detail view
Fixes #2598
Close #2802

//FREEBIE
2015-04-02 14:52:22 -07:00
Jake McGinty 597f7bbafd refactor proguard rules
// FREEBIE
2015-04-02 14:49:45 -07:00
Rhodey Orbits 87760a795d Add "new message to <number>" always.
Fixes #2660
Closes #2854

// FREEBIE
2015-04-02 14:32:25 -07:00
Rhodey Orbits f4fe024e50 Correct default value of 'pref_key_ringtone'.
Fixes #2793
Closes #2831

// FREEBIE
2015-04-02 14:31:19 -07:00
Moxie Marlinspike 797b296f3a Break long filter thread id calls up into chunks of 900.
// FREEBIE

Fixes #2462
Closes #2860
2015-04-02 14:27:00 -07:00
Moxie Marlinspike b8a231c40f Remove dynamicLanguage/dynamicTheme from VerifyIdentityActivity
This already happens in the parent.

Fixes #2853

// FREEBIE
2015-04-02 14:08:10 -07:00
Jake McGinty 5cb94f02b3 Fix failed SMIL generation when part name is null
Fixes #2851
Closes #2866

// FREEBIE
2015-04-02 13:43:44 -07:00
Rhodey Orbits db7a657001 fix LoaderManager inefficiencies
Redundant calls in ConversationActivity and ConversationListActivity
was causing unnecessary view invalidations.

Closes #2592
2015-04-02 13:33:23 -07:00
Jake McGinty ca2c8b961e Fix sharing text via ShareActivity intents
Fixes #2855
Closes #2865

// FREEBIE
2015-04-02 12:04:39 -07:00
Rhodey Orbits 4e4538f4e8 Remove broken tests
1) removed old, unused, and broken MmsReceiverTest.
2) removed RegistrationActivityTest which got entirely broken
   when 8573316fdf removed the
   Class it inherited from (RoutedInstrumentationTestCase).

all tests in connectedCheck target now passing on Nexus One
 GB test device.

Closes #2864

// FREEBIE
2015-04-02 11:37:02 -07:00
Jake McGinty 796c5de5d5 Fix crash when username is null in mms auth
Fixes #2850
Closes #2863

// FREEBIE
2015-04-02 11:35:27 -07:00
Jake McGinty beceee846a Fix re-registering missing MasterSecret
// FREEBIE

Closes #2861
2015-04-02 11:33:30 -07:00
Carey Metcalfe 8573316fdf Remove obsolete RoutingActivity test
Closes #2857
2015-04-01 17:11:28 -07:00
Jake McGinty 6c59eb052e Prevent crash from strange SQLite error
Full fix may require packaging and using our own SQLite via JNI. Needs
further investigation.

Fixes #2506
Closes #2843

// FREEBIE
2015-04-01 10:23:05 -07:00
Jake McGinty 0ff99258ac move routing logic to all activities
Fixes #2239
Closes #27923

// FREEBIE
2015-04-01 10:23:05 -07:00
Jake McGinty 141ee6565d add @Nullable annotation to outoging mms api
Closes #2830

// FREEBIE
2015-04-01 10:23:05 -07:00
xrazvan 38fa4e91fa Update arrays.xml - Fixed misspeling for Romanian language
Closes #2826
2015-04-01 10:20:31 -07:00
Jake McGinty 2f20bb89f3 use internal emoji pane for all android versions
1) Enter key by default (remove as option), still
   keeping "Enter key sends" option

2) New material assets for emoji and keyboard icons,
   inc a xxhdpi version finally

fixes #2300, fixes #2251, fixes #2183

Closes #2302

// FREEBIE
2015-04-01 10:20:31 -07:00
Jake McGinty c04b675a1a Fix null-response NPE in outgoing MMS
Fixes #2839
Closes #2840

// FREEBIE
2015-03-31 10:53:20 -07:00
Moxie Marlinspike e70298e624 Catch malformed NOTIFY-IND
Fixes #2508

// FREEBIE
2015-03-31 09:12:22 -07:00
Poly 6181dc4037 Fixed Typo in README
Closes #2822

// FREEBIE
2015-03-30 15:37:37 -07:00
Moxie Marlinspike 9b0cae1d45 Bump version to 2.9.3
// FREEBIE
2015-03-30 11:35:49 -07:00
Jake McGinty 491440094b Fix NPE when RetrieveConf is null
Fixes #2828
Closes #2829
// FREEBIE
2015-03-30 10:50:55 -07:00
agrajaghh e6b2d31db7 add Code style Guidlines to contributing.md
Closes #2472

//FREEBIE
2015-03-27 16:09:19 -07:00
Moxie Marlinspike 0ca8a480c5 Bump version to 2.9.2
// FREEBIE
2015-03-27 15:29:54 -07:00
Jake McGinty 349faf18fa Fix missing timestamp in SendReq
// FREEBIE
2015-03-27 15:02:01 -07:00
Moxie Marlinspike 88ed8f3887 Bump version to 2.9.1
// FREEBIE
2015-03-27 11:19:20 -07:00
Jake McGinty 6a6f900b7d Fix NPE when 'from' missing in NotificationInd
Fixes #2806
// FREEBIE
2015-03-27 10:59:04 -07:00
Jake McGinty 17383ddfe0 fix NPE for incoming failed messages
Fixes #2807
// FREEBIE
2015-03-27 10:37:59 -07:00
agrajaghh 1b846c0842 remove unused resources
Closes #2594

//FREEBIE
2015-03-26 16:29:32 -07:00
Sam Whited dbda758841 Add pref to change MMS user agent
Closes #2363

// FREEBIE
2015-03-26 15:48:53 -07:00
Moxie Marlinspike c6b3bb9f13 Bump version to 2.9.0
// FREEBIE
2015-03-26 11:28:39 -07:00
Moxie Marlinspike bdeeea2e46 Update language translations.
// FREEBIE
2015-03-26 11:13:55 -07:00
Jake McGinty 427c9a6b21 Use new MMS APIs in Lollipop onwards
Fixes #1937
Closes #2727
2015-03-26 11:05:41 -07:00
Moxie Marlinspike dfda2f733c Upgrade to libtextsecure 1.2.4
Fixes #2790

// FREEBIE
2015-03-25 14:13:53 -07:00
agrajaghh 6f600a80b8 fix merge conflict between #2743 and #2746
Closes #2789

//FREEBIE
2015-03-25 13:28:57 -07:00
agrajaghh 62181a3d7f migrate AlertDialog to material-dialogs
Closes #2743
2015-03-25 11:50:52 -07:00
Moxie Marlinspike 6c386d3fc9 Add http to invite url.
// FREEBIE
2015-03-25 11:18:38 -07:00
Moxie Marlinspike b9e6cff20c Fix the build
Fixes #2787
2015-03-25 10:55:47 -07:00
Moxie Marlinspike d65a7f1a25 Update invite strings.
// FREEBIE

Closes #2735
2015-03-25 10:49:52 -07:00
Rhodey Orbits 76d0f45b9b append invite link to message draft instead of overwrite it.
Fixes #2583
// FREEBIE
2015-03-25 10:36:36 -07:00
agrajaghh 3a19ac432b Display the phone number in the confirm dialog during registration
Closes #2746
2015-03-25 09:24:28 -07:00
NorthwestBased 6ec9ee89a7 Disallow zero-length passphrases.
Fixes #2751
Closes #2762
2015-03-25 09:19:53 -07:00
Moxie Marlinspike 472179b550 Ignores MMS WAP_PUSH_DELIVER_ACTION if we're not the default app.
Apparently some ROMs have a bug where they broadcast
WAP_PUSH_DELIVER_ACTION even when you're not the system's default
SMS/MMS app.

Fixes #2777
2015-03-25 08:57:08 -07:00
Rhodey Orbits f38bd7b187 fix initialization of emoji cache
Fixes #2700
Closes #2719

// FREEBIE
2015-03-23 15:02:31 -07:00
Jake McGinty b73143d7a7 fix send button assets
Closes #2757

// FREEBIE
2015-03-23 13:54:37 -07:00
Jake McGinty 9a2c372c23 fix crash on android contact weirdness
Fixes #2722
Closes #2758

// FREEBIE
2015-03-23 13:53:22 -07:00
Moxie Marlinspike b21369b7bc Bump version to 2.8.0
// FREEBIE
2015-03-19 12:55:41 -07:00
Moxie Marlinspike 5939a1f995 Upgrade libtextsecure to 1.2.3
// FREEBIE
2015-03-19 12:41:07 -07:00
Moxie Marlinspike e4b73e90e1 Update language translations
// FREEBIE
2015-03-19 12:02:58 -07:00
Jake McGinty 073d019103 Fix SMIL regression
Closes #2654

// FREEBIE
2015-03-19 11:56:45 -07:00
Jake McGinty 761ccf4b3f Fix for inconsistent thumbnail aspect ratio
Problems arose from any app that targets below API 19 and uses
views that rely on RelativeLayouts giving correct measurement specs to
their onMeasure().

Resolves #2676
Closes #2712
// FREEBIE
2015-03-19 11:21:40 -07:00
Moxie Marlinspike 7a023b9fdc Acquire wakelocks for incoming messages.
Closes #2717

// FREEBIE
2015-03-19 11:19:53 -07:00
Jake McGinty 9f804047f5 lazily initialize emoji drawer
Saves a good amount of inflation time in onCreate for new conversations.

Closes #2585
Closes #2636

// FREEBIE
2015-03-19 11:16:52 -07:00
Rhodey Orbits a625727853 String should not be compared with an Optional in DeliveryReceiptJobTest.testDelivery().
Closes #2713

// FREEBIE
2015-03-18 14:28:29 -07:00
Moxie Marlinspike e0737451db Bump version to 2.7.1
// FREEBIE
2015-03-17 10:21:12 -07:00
agrajaghh 0f572d1e5d adapt SMS strings in preferences
Fixes #2672
Closes #2682

//FREEBIE
2015-03-16 11:02:22 -07:00
Moxie Marlinspike 142f84703b Make clickable conversation items batch selectable
Fixes #2679

// FREEBIE
2015-03-16 10:32:39 -07:00
Jake McGinty b47bd97e9e fix message details 12-hour time formatting
Resolves #2695
// FREEBIE
2015-03-15 20:28:23 -07:00
Jake McGinty 4099303d1f make dark theme go less wild
Resolves #2675
Closes #2693

// FREEBIE
2015-03-15 09:33:10 -07:00
Jake McGinty 71eeb7ca83 Fix ClassCastException for notifications
Resolves #2691
Closes #2692

// FREEBIE
2015-03-15 09:31:21 -07:00
Jake McGinty 186a5e4dfc update libpastelog to 1.0.6
adds memory information to debug output
// FREEBIE
2015-03-13 17:52:31 -07:00
Moxie Marlinspike 0d84ec51a8 Update README with beta instructions.
// FREEBIE
2015-03-13 12:16:13 -07:00
Moxie Marlinspike 6c9ed77e5f Bump version to 2.7.0-B1
// FREEBIE
2015-03-13 12:09:56 -07:00
Moxie Marlinspike fc3aaed8a8 Remove unused layouts and strings.
// FREEBIE
2015-03-13 11:58:49 -07:00
Moxie Marlinspike c72cc1b49c Updated language translations.
// FREEBIE
2015-03-13 11:43:49 -07:00
Jake McGinty 13227b6aa5 disable fancy new thumbnail preview
It was causing OOMEs on old devices.
// FREEBIE
2015-03-13 11:30:15 -07:00
Moxie Marlinspike cc65fab226 Update message details activity display when resending SMS/MMS
// FREEBIE
2015-03-13 11:29:44 -07:00
agrajaghh dee2e0906e remove "Complete key exchanges" from advanced options
Closes #2664

//FREEBIE
2015-03-13 12:09:37 +01:00
Moxie Marlinspike e142cb6d26 Prompt for registration on install until successful.
Closes #2657

// FREEBIE
2015-03-12 18:36:34 -07:00
Jake McGinty 4185006147 add borderless thumbnails, "bubble" refactor
Closes #2430

// FREEBIE
2015-03-12 18:23:08 -07:00
Moxie Marlinspike a4e18c515c Remove encrypted SMS transport, simplify transport options.
Closes #2647

// FREEBIE
2015-03-12 17:53:38 -07:00
Rhodey Orbits 2011391e65 Fix notifications for media messages without text.
They now read 'media message' in italics.

Closes #2649
2015-03-12 17:30:23 -07:00
Jake McGinty 96896bf8f1 disconnect radio regardless of MMS exception
Fixes #2498
Closes #2544
// FREEBIE
2015-03-12 12:29:32 -07:00
agrajaghh ac312ff5d5 change FAB icon to ic_create and add more resolutions to ic_add
Closes #2634

//FREEBIE
2015-03-12 11:31:03 -07:00
agrajaghh b3552ee347 add dynamicTheme and dynamicLanguage to MessageDetailsActivity
Closes #2640

//FREEBIE
2015-03-12 11:22:12 -07:00
Jake McGinty b998c5f86c Add missing MSISDN headers to MMS send request
Fixes #1935
Fixes #2451
Closes #2605

// FREEBIE
2015-03-12 11:18:20 -07:00
Jake McGinty 0b8430ff43 update APN list, fix MMSC issues
Fixes #2413
Closes #2606

// FREEBIE
2015-03-12 11:15:14 -07:00
Moxie Marlinspike 3e80032c18 Bump version to 2.6.4
// FREEBIE
2015-03-11 09:24:28 -07:00
Moxie Marlinspike 41fadc3437 Use libtextsecure 1.2.2
// FREEBIE
2015-03-10 18:59:12 -07:00
Moxie Marlinspike c1fe585ffb Bump version to 2.6.3
// FREEBIE
2015-03-09 13:32:11 -07:00
Moxie Marlinspike 078df0f029 Update key conflict message in place.
// FREEBIE
2015-03-09 13:15:24 -07:00
Moxie Marlinspike 9f9293cd61 Pending indicator was not cleared on recycled views.
// FREEBIE
2015-03-09 13:14:39 -07:00
Moxie Marlinspike 4e87513867 Bump version to 2.6.2
// FREEBIE
2015-03-08 11:45:56 -07:00
Moxie Marlinspike c05aca19ae Minimal-diff change to fix NPE.
Fixes #2623

// FREEBIE
2015-03-08 11:37:18 -07:00
Moxie Marlinspike db2c7fabe1 Bump version to 2.6.1
// FREEBIE
2015-03-07 09:28:28 -08:00
Moxie Marlinspike e7eb0ec2b3 Fix for missing messages bug
Fixes #2609

// FREEBIE
2015-03-07 09:02:59 -08:00
Moxie Marlinspike da75268545 Temporary fix until jake fixes this shit
// FREEBIE
2015-03-07 09:02:38 -08:00
Moxie Marlinspike 49ab1e7bd5 Bump version to 2.6.0
// FREEBIE
2015-03-06 11:07:53 -08:00
Moxie Marlinspike b5a2d7882a Updated language translations.
// FREEBIE
2015-03-06 10:10:34 -08:00
Moxie Marlinspike 534df06794 Support granular "custom" MMS preferences.
1) Make each MMS preference an individual choice between custom
   and default.

2) Display default values.

Closes #2487

// FREEBIE
2015-03-05 18:42:34 -08:00
agrajaghh e31ddf0599 remove unused icons
Closes #2575

//FREEBIE
2015-03-05 18:36:10 -08:00
Rhodey Orbits ce22e54359 Update message timesamps on resume.
Fixes #2519.
Closes #2593

// FREEBIE
2015-03-05 18:20:39 -08:00
Rhodey Orbits 7ce7ec56eb 1) created a new string constant for 'Passphrase'.
2) modified 'App protection' preference group summary to be more verbose.
3) dropped the colons from 'Appearance' preference group summary.
4) dropped the colons from and 'SMS and MMS' preference group summary.
2015-03-05 18:20:39 -08:00
agrajaghh 2b39728ea0 fix icons in import/export dialog
Closes #2574

//FREEBIE
2015-03-05 17:35:25 -08:00
Jake McGinty 2af5c7f02e fix "verify" button spacing in details
Fixes #2566
// FREEBIE
2015-03-05 17:07:07 -08:00
Jake McGinty d6e0199e05 fix MessageDetailsActivity home button
// FREEBIE
2015-03-05 17:07:07 -08:00
Moxie Marlinspike 301ed0b255 Move passphrase disabled preference set to after secret generation.
Fixes #2588
2015-03-05 13:09:18 -08:00
Moxie Marlinspike ac5306be5b Fix locale names
// FREEBIE

Closes #2564
2015-03-05 11:45:09 -08:00
agrajaghh 9de62d0286 replace icons in the add attachment dialog
Closes #2535
2015-03-03 17:14:31 -08:00
agrajaghh 067b14d551 make some strings translateable
closes #2567

//FREEBIE
2015-03-03 17:09:07 -08:00
agrajaghh 03110c9870 remove ConfirmIdentityActivity
Closes #2571

//FREEBIE
2015-03-03 17:06:24 -08:00
agrajaghh a2b5bf54c8 remove PassphraseTimeoutPreference since its no longer used
closes #2565

//FREEBIE
2015-03-03 17:03:17 -08:00
Moxie Marlinspike 5602a3dfc0 Update to latest version of libtextsecure for simplified interface.
1) Switch to new TextSecureAddress addressing, rather than mixing
   long-based recipient IDs into libtextsecure.

2) Get rid of RecipientFormattingException throws in calls to
   RecipientFactory.

Closes #2570
2015-03-03 12:25:09 -08:00
Moxie Marlinspike ed5b3f8679 Break out libtextsecure
// FREEBIE

Closes #2542
2015-03-02 08:25:19 -08:00
Moxie Marlinspike 7bf7acb1ff Dependency verification.
// FREEBIE

Closes #2546
2015-02-28 09:40:52 -08:00
Moxie Marlinspike ffa5dc549b Add libtextsecure README
// FREEBIE
2015-02-27 16:58:19 -08:00
Moxie Marlinspike a59feb7ad4 Rename PushAddress to TextSecureAddress
// FREEBIE
2015-02-27 16:57:51 -08:00
Jake McGinty 753a1c7219 add FAB content description
// FREEBIE
2015-02-27 16:31:01 -08:00
Moxie Marlinspike 004f050741 libtextsecure javadoc and minor API refactoring
// FREEBIE
2015-02-27 15:35:18 -08:00
Jake McGinty fcde642563 Fix invalid transportation options
1) Accounts in the directory that don't have supports_sms can't
   get encrypted SMS.
2) Push groups can't receive insecure SMS

// FREEBIE

Closes #2521
2015-02-27 13:00:18 -08:00
Jake McGinty ac0a1c0bc1 Conflicts UI touch-ups:
1) Fix i18n and layout naming.
2) Error header for message details.
3) Add back button to message details.

// FREEBIE

Closes #2593
2015-02-27 12:26:35 -08:00
Moxie Marlinspike 3f93731300 Adapt Conflicts UI to work with single-recipient failures. 2015-02-27 12:26:09 -08:00
Moxie Marlinspike 00d7b5c284 Better UX handling on identity key mismatches.
1) Migrate from GSON to Jackson everywhere.

2) Add support for storing identity key conflicts on message rows.

3) Add limited support for surfacing identity key conflicts in UI.
2015-02-27 12:26:09 -08:00
Jake McGinty 4397b55ceb fix padding problem in compose text
// FREEBIE
2015-02-25 14:53:32 -08:00
Martin Stone b87abcc2c1 Update lockscreen image to new (blue) logo.
Fixes #2426
Closes #2502
2015-02-24 16:45:12 -08:00
Sebastian Kürten 79dbf2746f Added new media icons for audio/video
Added icons new icons, deleted an old one.
Using new icons in AudioSlide/VideoSlide.

Closes #2304
2015-02-23 13:13:39 -08:00
agrajaghh a4bd9fae9a make "repeat alerts" setting translatable
Fixes #2511
Closes #2516

 //FREEBIE
2015-02-23 09:54:28 -08:00
Moxie Marlinspike d4493e700e Add GroupId for received messages.
// FREEBIE
2015-02-23 09:53:32 -08:00
Moxie Marlinspike 83d65228e9 Fix for race conditioned caused by OkHttpClient NPE.
We catch OkHttpClient exceptions to deal with bugs in their code,
but in some cases that was leaving our state information in a
bad situation.

// FREEBIE
2015-02-23 09:53:19 -08:00
Moxie Marlinspike 8a2caeef3d Fix for OKH IllegalStateException.
// FREEBIE

Fixes #2501
2015-02-20 12:45:42 -08:00
Jake McGinty 6280ef4ab8 Revert "set appcompat menu class to obfuscate-only in PG"
This reverts commit 899afa2092.

Was able to reproduce a crash with this in second test that was actually
resolved in the previous proguard. Reverting.
2015-02-19 16:27:39 -08:00
Jake McGinty 899afa2092 set appcompat menu class to obfuscate-only in PG
keeping it on the safe side - tested on problematic samsung devices, and
it looks like it works fine.
// FREEBIE
2015-02-19 15:36:57 -08:00
Moxie Marlinspike 7c6b965969 Shrink some SC classes for Gingerbread dexopt limit.
// FREEBIE
2015-02-19 12:32:54 -08:00
Jake McGinty 5fac189736 "All images" view for conversations
// FREEBIE
2015-02-18 15:47:47 -08:00
Moxie Marlinspike d3271f548c Support for retrieving stored messages via websocket.
1) When registering with server, indicate that the server should
   store messages and send notifications.

2) Process notification GCM messages, and connect to the server
   to retrieve actual message content.
2015-02-18 11:09:01 -08:00
Jake McGinty 023195dd4b make send button focusable
Fixes #2494
// FREEBIE
2015-02-17 17:55:18 -08:00
Moxie Marlinspike 299dd86c77 Support matching to account for telcos inserting SMS prefixes.
// FREEBIE

Fixes #1944
2015-02-16 20:25:19 -08:00
Jake McGinty f818cfa32b Unjank character count indicators
Fixes #1841
// FREEBIE
2015-02-16 13:25:44 -08:00
Jake McGinty fc21d2038f Add first Espresso interaction test
// FREEBIE
2015-02-16 13:08:28 -08:00
Jake McGinty 8277e4e102 Fix NPE when InetAddress.getByName() is null
Resolves #2189
// FREEBIE
2015-02-16 13:07:59 -08:00
Jake McGinty 242dbef54e Prevent NPE when MMS's FROM PduHeader is missing
Fixes #1448
// FREEBIE
2015-02-16 13:07:30 -08:00
Jake McGinty 9ffd84ce05 Increase readability of recv date in dark theme
Fixes #1483
// FREEBIE
2015-02-15 22:09:02 -08:00
Moxie Marlinspike cb37ce0f5f Fix README typo
// FREEBIE

Closes #2396
2015-02-15 14:41:36 -08:00
Andy Martin 7ab739b22b clear the current text box when deleting a draft-only thread.
otherwise the draft will be immediately re-saved (preventing
thread deletion).

// FREEBIE

Closes #2474
Fixes #2473
2015-02-15 09:41:55 -08:00
Moxie Marlinspike 224b06f05a Theme the HMS picker.
// FREEBIE

Closes #2353
2015-02-13 15:06:50 -08:00
McLoo d36d33f837 Stop crash on pasting long numbers as country code
//FREEBIE

Closes #2311
2015-02-13 14:38:35 -08:00
Moxie Marlinspike 724dced820 Define a max message length to display.
// FREEBIE

Closes #2294
2015-02-13 14:32:11 -08:00
Sam Lanning b8ca0e57ad Only initialise EmojiGrid when not in edit mode
Suppress initialisation of the emoji_grid_layout.xml when the
EmojiDrawer is being used in a layout where the editor is shown,
 to prevent an NPE when an editor is being used.

// FREEBIE

Closes #2288
2015-02-13 14:23:05 -08:00
AsamK fe5fc411a7 Save drafts for recipients without an existing thread
- Save drafts without thread in draft database
- Clear drafts when deleting conversation(s), otherwise
  the drafts stay in the database and will reappear when a thread
  with the same threadId is created

Closes #1510
2015-02-13 14:16:19 -08:00
agrajaghh 20d43bbfcb add icons to the preference categories
Closes #2361
2015-02-13 11:18:04 -08:00
Jake McGinty 442f56cdc3 prevent NPE in GroupCreateActivity
Occurs when a returned Recipient is null when returning from contact
selection activity.

Fixes #2466
// FREEBIE
2015-02-12 13:36:47 -08:00
Moxie Marlinspike 35dabaf1e5 Bump version to 2.5.3
// FREEBIE
2015-02-12 13:23:53 -08:00
Jake McGinty 1aec794a34 widen LGE menu workaround constraints
// FREEBIE
2015-02-12 13:16:03 -08:00
Jake McGinty 5bd8d6c69d Check the part stream is non-null before decoding
// FREEBIE

Closes #2459
2015-02-12 10:32:53 -08:00
Moxie Marlinspike aa26785c00 Reinclude SC provider for consistency.
// FREEBIE

Fixes #2461
2015-02-12 10:30:45 -08:00
Moxie Marlinspike f450b37cfd Bump version to 2.5.2
// FREEBIE
2015-02-11 23:24:10 -08:00
Jake McGinty b88e470594 prevent recipient listener Activity context leak
Resolves #2372
Resolves #2425
// FREEBIE
2015-02-11 12:50:20 -08:00
Jake McGinty f38677794a stop giving long-living static objects Activity contexts
// FREEBIE
2015-02-11 12:50:19 -08:00
Jake McGinty ac4db41435 lower memory consumption from previews
// FREEBIE
2015-02-11 12:50:19 -08:00
Jake McGinty 3a9d521ffe Workaround LG-related menu issues, pt. 2
fixes #2444
// FREEBIE
2015-02-11 12:44:40 -08:00
Jake McGinty b1bf33b13b Fix SaveAttachmentTask NPE
resolves #2454
// FREEBIE
2015-02-11 11:42:36 -08:00
Moxie Marlinspike 352418d2d7 Don't notify on MMS delivery failure if message has been deleted.
// FREEBIE

Fixes #2453
2015-02-11 10:29:05 -08:00
Moxie Marlinspike fb523985ed Bump version to 2.5.1
// FREEBIE
2015-02-09 13:45:41 -08:00
Moxie Marlinspike 7ffe6f053c Merge pull request #2435 from mcginty/dark-actionmode-popup
Fix white-on-white ActionMode popup in dark theme
2015-02-09 12:07:54 -08:00
Jake McGinty ea77191b70 Fix white-on-white ActionMode popup
// FREEBIE
2015-02-09 12:00:52 -08:00
Moxie Marlinspike e0b882d4d2 Merge pull request #2434 from mcginty/plurals
move plurals to strings.xml
2015-02-09 11:24:58 -08:00
Jake McGinty 10a74d6d08 move plurals to strings.xml
Resolves #2421
// FREEBIE
2015-02-09 11:19:30 -08:00
Jake McGinty f092e85b62 Workaround for LGE-related NPEs
See: https://code.google.com/p/android/issues/detail?id=78154

Fixes #2424
Closes #2428

// FREEBIE
2015-02-09 09:15:44 -08:00
Moxie Marlinspike 8aa0f15740 Bump version to 2.5.0
// FREEBIE
2015-02-06 16:42:04 -08:00
Moxie Marlinspike 18d4d4de24 Update language translations
// FREEBIE
2015-02-06 16:21:16 -08:00
Moxie Marlinspike b3c42dee7e Merge pull request #2416 from mcginty/better-relative-dates
more succinct relative dates
2015-02-06 16:20:23 -08:00
Moxie Marlinspike 5836f35291 Merge pull request #2400 from mcginty/mms-bad-base64-fix
Fix NPE when encrypted MMS has bad base64 encoding
2015-02-06 16:19:20 -08:00
Jake McGinty dbd8a4083c Fix NPE when encrypted MMS has bad base64 encoding
// FREEBIE
2015-02-06 13:01:36 -08:00
Jake McGinty 0fd52ad1fe more succinct relative dates
// FREEBIE
2015-02-06 13:00:21 -08:00
Moxie Marlinspike 8031c788d9 Merge pull request #2415 from mcginty/empty-group-updates
fix empty group update messages
2015-02-05 19:49:09 -08:00
Moxie Marlinspike 10a29db93d Merge pull request #2414 from mcginty/unread-readability
increase unread visibility in conv list
2015-02-05 19:46:31 -08:00
Jake McGinty 8f3f2e6921 fix empty group update messages
// FREEBIE
2015-02-05 19:38:08 -08:00
Jake McGinty 65c262acef increase unread visibility in conv list
// FREEBIE
2015-02-05 18:41:54 -08:00
AsamK d586893402 Also crop contact photos in ShareList
// FREEBIE
2015-02-05 14:14:48 -08:00
Jake McGinty ba62e018db Refine icon
1) fix glow
2) improve shadows
3) fix density-inconsistent assets
2015-01-28 12:52:51 -10:00
Moxie Marlinspike 57c17e705f Fix provisioning dialog strings.
// FREEBIE

Closes #2368
2015-01-24 10:16:33 -08:00
Jake McGinty 2e253fb6a8 provisioning dialog rework
// FREEBIE
2015-01-24 10:15:47 -08:00
Moxie Marlinspike 0c32001fe4 Support for multi-device provisioning flow.
// FREEBIE
2015-01-24 10:15:47 -08:00
Jake McGinty 48f6c2c526 Fix 'indicator tab' coloring
Was previously white-on-near-white
// FREEBIE
2015-01-23 10:59:22 -10:00
Jake McGinty 39fd1e8f46 fix incoming lock asset
// FREEBIE
2015-01-21 20:06:05 -10:00
Jake McGinty 810abe0275 material actionbar and fab
// FREEBIE
2015-01-21 19:01:23 -10:00
Jake McGinty 62816ee51a rounded ImageView instead of Bitmap, crop-select
// FREEBIE
2015-01-21 17:39:54 -10:00
Calvin Hu a0599c1639 add theme to import/export activity
closes #2359
2015-01-16 10:41:01 -10:00
Jake McGinty 8a4a1b385d libpastelog 1.0.4
// FREEBIE
2015-01-15 13:06:42 -10:00
Moxie Marlinspike 5def8ba78d Bump version to 2.4.2
// FREEBIE
2015-01-14 13:51:53 -08:00
Jake McGinty 42da687602 Revert "add theme to import/export activity"
This reverts commit e64c067636.
2015-01-14 10:23:10 -10:00
Calvin Hu e64c067636 add theme to import/export activity 2015-01-14 10:03:02 -10:00
Calvin Hu c89fbabbf3 refresh contacts database on new db query 2015-01-13 15:16:30 -10:00
Moxie Marlinspike 778b8b490c Merge pull request #2346 from mcginty/thumbnail-early-recycle
fix early recycling of thumbnail
2015-01-13 16:21:15 -08:00
Jake McGinty bade52d748 fix early recycling of thumbnail
// FREEBIE
2015-01-13 14:17:03 -10:00
Moxie Marlinspike abc322b075 Bump version to 2.4.1
// FREEBIE
2015-01-13 16:01:58 -08:00
Moxie Marlinspike 9a31c5961a Merge pull request #2341 from mcginty/mms-recv-null-text
don't fail on null received text parts
2015-01-13 12:35:22 -08:00
Jake McGinty f536e45378 don't fail on null received text parts
Fixes #2340
// FREEBIE
2015-01-13 10:15:18 -10:00
Moxie Marlinspike 18961e6369 Merge pull request #2339 from mcginty/content-security-exception
catch content security exception
2015-01-13 12:02:24 -08:00
Jake McGinty 1505ec8c35 catch ContentProvider SecurityExceptions to avoid crashes
// FREEBIE
2015-01-13 10:00:19 -10:00
Jake McGinty d41efdbd1c prepareMessageMedia before we encrypt
and fail more nicely when pdu composition fails

// FREEBIE

Closes #2338
2015-01-13 11:59:03 -08:00
Jake McGinty 156cb4034e don't copy data when no dataUri
Fixes #2336
// FREEBIE
2015-01-13 11:57:46 -08:00
Moxie Marlinspike d2e188ee62 Bump version to 2.4.0
// FREEBIE
2015-01-13 11:54:36 -08:00
Moxie Marlinspike 1de16de55b Update language translations.
// FREEBIE
2015-01-12 13:40:00 -08:00
Moxie Marlinspike ac3b3673b9 Merge pull request #2330 from mcginty/dexmaker-workaround
workaround dexmaker bug in test cases
2015-01-12 13:38:57 -08:00
Jake McGinty 91bf5532b2 workaround dexmaker bug in test cases
// FREEBIE
2015-01-12 11:34:41 -10:00
Jake McGinty b25b95f933 media constraints model
// FREEBIE
2015-01-12 13:20:25 -08:00
Moxie Marlinspike a0ed0842a0 Add expiration check on build freshness.
// FREEBIE
2015-01-12 09:12:10 -08:00
Jake McGinty 12845da91a use PartDatabase to look up thumbnails async
// FREEBIE

Closes #2286
2015-01-11 18:10:53 -08:00
Jake McGinty 3e6e28e688 remove unused activities and fragments
// FREEBIE
2015-01-08 19:16:43 -08:00
Jake McGinty 9fed60628d fix temp file permission denied
// FREEBIE
2015-01-05 17:01:32 -08:00
Jake McGinty e67dafe9c8 set conversation actionbar statelessly
// FREEBIE
2015-01-04 13:14:09 -08:00
Jake McGinty 5e5531805b disable android's landscape keyboard fullscreen
in composition, it stops the custom send icon from appearing, and
doesn't pay attention to theming.

// FREEBIE
2015-01-04 02:30:16 -08:00
Jake McGinty b6822b310e don't populate data from uri when there is none
Fixes #2282
Closes #2283

// FREEBIE
2014-12-31 16:00:28 -08:00
Jake McGinty 3e8d2a557e Merge pull request #2281 from jonboulle/building
Remove native components from build instructions
2014-12-31 03:15:07 -08:00
Jonathan Boulle 23caf2b14d Remove native components from build instructions
Native components were split out into the libaxolotl-android repository
in 1833e57, so these instructions are no longer relevant.
2014-12-30 21:47:59 -08:00
Moxie Marlinspike 562520a4bb Remove empty strings.
// FREEBIE
2014-12-29 18:20:50 -08:00
Moxie Marlinspike 75d882e945 Updated language translations
// FREEBIE
2014-12-29 17:02:16 -08:00
Jake McGinty b39e41c803 media preview orientation
// FREEBIE
2014-12-29 16:50:19 -08:00
Jake McGinty 348352cc71 Bitmap OOM and rotation fixes
// FREEBIE
2014-12-29 16:42:22 -08:00
Moxie Marlinspike bec5e45605 Fix for old-skool SMS key exchange UI behavior.
Also fixes SMS "end session" messages failing to end session.

// FREEBIE
2014-12-29 15:09:13 -08:00
Moxie Marlinspike 4d8004ab21 Merge pull request #2276 from mcginty/group-meta-colors
group visual fixes
2014-12-29 14:37:45 -08:00
Jake McGinty 2e141b2a90 group visual fixes
// FREEBIE
2014-12-29 14:34:09 -08:00
Moxie Marlinspike ed556fbd3a Support for multi-select in the conversation list.
// FREEBIE

Closes #1601
Closes #2214

Fixes #2188
Fixes #786
2014-12-29 13:54:59 -08:00
Jake McGinty ebf6a2d833 remove pointless Bitmap allocation for ImageSlides
Fixes #2248
// FREEBIE
2014-12-29 13:49:37 -08:00
Moxie Marlinspike 25028b7178 Update to jobmanager 0.10.0
// FREEBIE
2014-12-29 13:32:37 -08:00
Jake McGinty 389128d1a3 fix edit-group intent extras
// FREEBIE
2014-12-29 12:58:54 -08:00
Moxie Marlinspike 6e85677c52 Support 'WiFi calling' devices.
// FREEBIE

Fixes #2254
Fixes #2240
Fixes #2160

Closes #2263
2014-12-29 12:51:39 -08:00
Moxie Marlinspike 1443d846c4 Use "singleTask" to ensure a single ConversationActivity instance.
1) Mark the Activity as singleTask.

2) Process onNewIntent for updates.

3) Propagate onNewIntent to the ConversationFragment.

Fixes #2232
Fixes #1532
Fixes #146
Fixes #851
Closes #2266
2014-12-29 12:49:15 -08:00
guiweber d7419caa4b Moved several hard-coded UI strings to strings.xml
Closes #2203
2014-12-29 12:29:48 -08:00
Jake McGinty e277f9f6d1 fix some missing recipient parcel bugs
// FREEBIE
2014-12-29 11:43:10 -08:00
McLoo 3f0932ff7b replace unlocalized 'at' in message details date
Making this a string resource has the potential for crashes.
Leaving it out completely is a little confusing.
The dash is the perfect solution - until a better date formatter is used.
Closes #2215
2014-12-26 11:05:34 -08:00
Jake McGinty 0a61534e03 fix recipient handling for media preview
// FREEBIE
2014-12-24 15:11:13 -08:00
Jake McGinty 121b1493cc thumbnail generation and disk caching
// FREEBIE
2014-12-24 14:46:50 -08:00
Moxie Marlinspike a57c7c3e09 Merge pull request #2264 from mcginty/write-part-data-fix
use PartAuthority when fetching part streams
2014-12-24 14:07:42 -08:00
Jake McGinty b89b986a9e use PartAuthority when fetching part streams
resolves the self-send case

Fixes #2259
// FREEBIE
2014-12-24 13:27:53 -08:00
Jake McGinty 1bb882ac96 fix bithub payment link and image 2014-12-24 13:22:31 -08:00
Jake McGinty 9e7928873b properly update transport options location
// FREEBIE
2014-12-24 13:17:41 -08:00
Moxie Marlinspike 21591dc6b1 Fix build.
// FREEBIE
2014-12-23 15:42:32 -08:00
McLoo 3ec95f7a8e More l10n - for decrypting errors
//FREEBIE

Closes #2231
2014-12-23 12:53:38 -08:00
Oliver Gasser 33d466a5cc Include group titles in search
When searching for messages only simple threads matching the
contact names are returned as search results. With this commit
also group converstations where the group title matches the search
term are displayed in the result. This makes search results more
consistent with the conversation list as now all conversation
titles (i.e. contact names and group titles) are searched through.

Fixes #1954
Closes #2216
2014-12-23 12:40:30 -08:00
Jake McGinty e8b947dfde Pass recipient ids, not recipient objects
Fixes #2233
// FREEBIE
2014-12-22 14:53:28 -08:00
Moxie Marlinspike 60a343120d Merge pull request #2230 from mcginty/manual-mms-pref-validation
Catch issues with bad MMSC URIs, add validation
2014-12-16 18:00:52 -08:00
McLoo 8af74e93a2 Replace button text to cancel TS registration
in RegistrationActivity from "skip" to "cancel", when coming from the reminder

Closes #2219
2014-12-16 16:09:26 -08:00
Jake McGinty e650349bb7 Catch issues with bad MMSC URIs, add validation
Fixes #2202
// FREEBIE
2014-12-16 16:01:22 -08:00
agrajaghh 44a4570870 remove double rotation of group avatars
//FREEBIE
2014-12-16 14:33:46 -08:00
Moxie Marlinspike f1572774f2 Merge pull request #2227 from mcginty/circle-crop-oom
memory-friendly resize for circle cropping
2014-12-15 20:42:53 -08:00
Jake McGinty ec18da8aa9 memory-friendly resize for circle cropping
Fixes #2224
// FREEBIE
2014-12-15 19:57:51 -08:00
Moxie Marlinspike 199c28dad6 Merge pull request #2218 from McLoo/fix_av_draft_2
Enabled audio and video drafts
2014-12-14 11:19:21 -08:00
McLoo 4a8a939f64 Enabled audio and video drafts
All slide types do have an "image", changing the check order enables audio and video drafts.
//FREEBIE
2014-12-14 20:16:35 +01:00
agrajaghh cef203f261 rotate images based on exif information
Closes #1847
2014-12-13 16:45:39 -08:00
Moxie Marlinspike d7de5415b5 Skip drafts and outbox messages during imports.
// FREEBIE

Closes #1468
Fixes #892
2014-12-12 19:35:52 -08:00
McLoo 188d11bc23 Added l10n for ZXing intent message box
Closes #2147
2014-12-12 19:05:31 -08:00
Tal Hacohen 990902845a Change creation of drafts to onStop method.
Drafts were created only on destroy of the conversation activity.
Moved it to be on stop for the activity.

Closes #1985
2014-12-12 18:51:52 -08:00
Jake McGinty 07bb07c342 streaming media
// FREEBIE
2014-12-12 18:49:32 -08:00
Aaron M Brown a09e0afbd6 Explain size limit for large attachments in toasts.
// FREEBIE

Fixes #2100
Closes #2172
2014-12-12 18:45:06 -08:00
Aaron M Brown bbea017d5a Make message details reflect 24-hour system preference.
Fixes #2150
Closes #2163
2014-12-12 18:37:40 -08:00
Moxie Marlinspike 426c56c77d Support install link
Closes #2001
Fixes #1722
2014-12-12 18:31:20 -08:00
Moxie Marlinspike 642334da1f Merge pull request #2212 from agrajaghh/betterpicker_translateable
make summary of passphrase timeout translatable
2014-12-12 17:04:29 -08:00
McLoo b44acd82e6 Added l10n for message details
//FREEBIE

Closes #2173
2014-12-12 16:43:45 -08:00
agrajaghh 62d0de2ee6 remove double include of betterpicker in build.gradle
//FREEBIE
2014-12-13 01:38:03 +01:00
agrajaghh 3c7e319029 make summary of passphrase timeout translatable
//FREEBIE
2014-12-13 01:37:06 +01:00
Lukas Barth 715b1ea10d Reset query string when search is collapsed
Closes #2041
2014-12-12 16:30:17 -08:00
ultrasandwich 6980a32628 Fix user-facing helping term 'insecure' to 'unsecured'.
Insecure implies an uncertainty of intention or confidence.
Unsecured is more specifically addressing the protocol which
wraps the message delivered.

Closes #1811
2014-12-12 16:17:34 -08:00
Moxie Marlinspike 15f44a78a9 Update min/max fix in shortcutbadger
// FREEBIE
2014-12-12 16:12:49 -08:00
Moxie Marlinspike 6b05f7905b Use betterpicker for HMS timeout.
// FREEBIE

Closes #1890
2014-12-12 16:07:02 -08:00
McLoo 9beb51bd77 Enabled audio and video drafts
//FREEBIE

Closes #1799
2014-12-12 14:44:21 -08:00
agrajaghh 0b62cf372b whitespace cleanup
//FREEBIE

Closes #1779
2014-12-12 14:39:51 -08:00
Moxie Marlinspike b7badec752 Switch to forked ShortcutBadger.
// FREEBIE
2014-12-12 11:49:48 -08:00
Jake McGinty a5e5a4c37f update build tools
// FREEBIE
2014-12-12 10:06:15 -08:00
Jake McGinty c448a833f5 another minor pref tweak for mms fallback
1) fix summary for outgoing sms/mms
2) disable mms option when TS-users is unselected, same as the fallback
   approval option.

// FREEBIE
2014-12-11 22:46:59 -08:00
Jake McGinty 761049d6f8 minor preferences tweaks
1) shorten some summaries
2) add summaries to appearance subscreen
3) move common summary functions to common parent class

// FREEBIE
2014-12-11 22:12:12 -08:00
Moxie Marlinspike df12174458 Add support for notification reminders.
// FREEBIE

Closes #1623
Fixes #323
2014-12-11 19:38:46 -08:00
agrajaghh 6e7566f781 remove workaround for nested PreferenceScreen's
Closes #2208
//FREEBIE
2014-12-11 19:36:15 -08:00
Jake McGinty 30232c1635 transport selection refactor
Closes #1724
// FREEBIE
2014-12-11 19:27:24 -08:00
Bastian Köcher 4a088410ae "add contact" button for unknown contacts
Closes #1551
2014-12-11 18:59:29 -08:00
Jake McGinty b05967f2c9 Show drafts in conversation list snippets
// FREEBIE
2014-12-11 18:27:54 -08:00
Jabro 1d0c9536fc Support for ShortcutBadger
// FREEBIE

Closes #1574
Closes #1952

Fixes #1526
Fixes #321
2014-12-11 17:23:21 -08:00
Moxie Marlinspike 3c4ac4b105 Add option that allows disabling MMS fallback with TS users.
// FREEBIE

Closes #1444
2014-12-11 16:12:36 -08:00
3xo ff05642f3e Enable progress indicator on group update
Closes #1165
2014-12-11 16:05:07 -08:00
Moxie Marlinspike 4e98c350a5 Support localization in passphrase activity and lock notification.
// FREEBIE

Closes #1328
2014-12-11 15:04:32 -08:00
Lukas Barth e5e5b93884 Add k-9 style avatars to group conversations
Closes #1107
2014-12-11 14:40:44 -08:00
agrajaghh 2f6cefca8a refactor preferences into multiple PreferenceFragments 2014-12-11 14:02:28 -08:00
Sam Lanning 8149af22ec Open Keyboard When NewConversationActivity opened
// FREEBIE
2014-12-11 12:40:21 -08:00
agrajaghh 55ee288c36 Refactor notification for encrypted messages.
Closes #1184
2014-12-11 12:13:08 -08:00
Moxie Marlinspike 1833e57c38 Break libaxolotl out into an external project.
// FREEBIE
2014-12-08 16:07:16 -08:00
Moxie Marlinspike c14945791c gradle tools 1.0.0
// FREEBIE
2014-12-08 14:17:09 -08:00
Moxie Marlinspike b914d5ca25 Bump version to 2.3.3
// FREEBIE
2014-12-04 17:35:03 -08:00
Moxie Marlinspike 7411a49572 Updated language translations.
// FREEBIE
2014-12-04 16:44:31 -08:00
Mladen Pejaković 3fcd2bb88d Add Croatian language to list
// FREEBIE

Closes #2167
Fixes #2026
2014-12-04 16:02:42 -08:00
Moxie Marlinspike 978f769d6d Notify on incoming messages when locked.
// FREEBIE

Fixes #2149
2014-12-04 15:49:09 -08:00
Moxie Marlinspike 9d693eef30 Fix for fallback behavior.
// FREEBIE
2014-12-03 14:16:34 -08:00
Moxie Marlinspike 8f79ba1dd1 Merge pull request #2178 from mcginty/async-media-preview
media preview fixes
2014-12-03 09:09:43 -08:00
Jake McGinty 15613894f0 load image previews asynchronously
// FREEBIE
2014-12-03 13:03:03 +00:00
Jake McGinty a88fbba49f use Loader when conversation is updated instead of requery
// FREEBIE
2014-12-03 04:47:38 +00:00
Jake McGinty f3f173f653 support mms basic auth
// FREEBIE
2014-12-02 08:59:43 +00:00
Moxie Marlinspike 5002a749cf Merge pull request #2166 from agrajaghh/building.md_ndk_path
Building.md: library -> libaxolotl
2014-12-01 09:06:32 -08:00
agrajaghh 4a107483c1 path changed: library -> libaxolotl 2014-12-01 16:09:55 +01:00
Tal Hacohen 9ef1ea283b Fix notification display order.
Messages in notifications were showing in reverse order,
that is newest on top instead of newest at the bottom making
multiple messages hard to read.

Closes #1984
2014-11-30 08:35:51 -08:00
christian mock 32153ec379 Use "sms_body" extra from Intent
Closes #2071
2014-11-29 19:31:25 -08:00
Mladen Pejaković ceb82a05ca Add Serbian language to the list
Closes #2008
2014-11-29 13:43:51 -08:00
McLoo 899bf8160d Cleanup of unused strings in strings.xml
//FREEBIE

Closes #2139
2014-11-29 13:35:36 -08:00
McLoo 49f77c9c06 Added l10n for message trimmer
//FREEBIE

Closes #2079
Closes #1868
2014-11-29 13:31:44 -08:00
McLoo cd5feccdbf Fix selection for hungarian
// FREEBIE

Closes #2025
2014-11-29 13:19:49 -08:00
Moxie Marlinspike a1da22cee9 Use constant.
// FREEBIE

Closes #1988
2014-11-29 13:12:53 -08:00
Jakob a950db74c0 add dependencies to BUILDING.md
// FREEBIE

Closes #1809
2014-11-29 11:54:30 -08:00
Jake McGinty b0891fa986 move log submission to new library
// FREEBIE

Closes #1655
2014-11-29 11:42:25 -08:00
Moxie Marlinspike b57763f397 Display 'me' for device's local number in group membership list.
// FREEBIE

Fixes #1494
Closes #1505
2014-11-28 10:46:50 -08:00
Moxie Marlinspike de75a98093 Move JobManager to external project and dependency.
// FREEBIE
2014-11-28 10:10:47 -08:00
Moxie Marlinspike 0d01feebc3 Move directory refresh from a service over to a job.
// FREEBIE
2014-11-27 15:24:26 -08:00
Moxie Marlinspike 0fb7f3b970 Minor cleanup.
// FREEBIE
2014-11-26 10:05:30 -08:00
agrajaghh a9637baddf PushNetworkException for network errors on external downloads.
Closes #2112
Fixes #1264

// FREEBIE
2014-11-25 09:07:49 -08:00
Moxie Marlinspike 5e61161767 Bump version to 2.3.2
// FREEBIE
2014-11-24 23:44:50 -08:00
Jake McGinty 83d281de71 compat actionbar bg for dark theme
// FREEBIE
2014-11-25 09:28:22 +02:00
Jake McGinty 28f63cf335 Revert "Try to fix LGE menu button NPEs"
This reverts commit f3a3aaca60.
2014-11-25 09:23:57 +02:00
Jake McGinty f3a3aaca60 Try to fix LGE menu button NPEs
fix based on https://code.google.com/p/android/issues/detail?id=78154

// FREEBIE
2014-11-25 09:17:27 +02:00
agrajaghh 908e8b8746 fix for ringtone selection with android-support-v4-preferencefragment 2014-11-25 09:08:30 +02:00
Jake McGinty 4573f3cb77 reorder window feature requests in MediaPreviewActivity
ActionBar is initialized in a different way by AppCompat v20 compared to
ABS or v21 even...
// FREEBIE
2014-11-25 08:55:40 +02:00
Moxie Marlinspike d72a3ec669 Do thread trimming as JobManager job rather than AsyncTask.
// FREEBIE
2014-11-24 22:50:32 -08:00
Moxie Marlinspike 3439657bba Guard against fragment disappearing before callback.
// FREEBIE
2014-11-24 22:48:50 -08:00
Moxie Marlinspike 1ad7912e75 Add callback method parameter to axolotl decrypt functions.
// FREEBIE
2014-11-24 12:17:15 -08:00
Moxie Marlinspike 30aff82341 The future is the other direction.
// FREEBIE
2014-11-24 11:37:28 -08:00
Moxie Marlinspike c54a5b613b Bump version to 2.3.1
// FREEBIE
2014-11-24 11:15:29 -08:00
Moxie Marlinspike 31ad30b3a5 Updated translations.
// FREEBIE
2014-11-24 10:59:03 -08:00
Moxie Marlinspike 4ccb7ebab6 Don't completely disable GCM.
// FREEBIE
2014-11-24 10:48:33 -08:00
Jake McGinty bf69a90b69 rollback to appcompat v20
v21 appears to just not be ready for production given the bugs.
// FREEBIE
2014-11-24 19:09:33 +02:00
Moxie Marlinspike bf19307916 Make GCM re-registration failure notification based.
// FREEBIE
2014-11-23 17:12:35 -08:00
Moxie Marlinspike d42c4229fd Update to latest zxing QR code scanner.
Closes #2078

// FREEBIE
2014-11-22 09:47:02 -08:00
Moxie Marlinspike 31eddbf346 Bump version to 2.3.0
// FREEBIE
2014-11-21 14:49:14 -08:00
Moxie Marlinspike e9b383d277 Add jobs for pending push messages during migration.
// FREEBIE
2014-11-21 12:53:40 -08:00
Moxie Marlinspike eeafb81c90 Fix escaping in danish translation.
// FREEBIE
2014-11-21 12:53:24 -08:00
Moxie Marlinspike 02e27c94f2 Update language translations.
// FREEBIE
2014-11-21 11:49:35 -08:00
Jake McGinty 167386ea49 make the light theme light
Fixes #2111
Tested on GB and LP
// FREEBIE
2014-11-20 21:59:15 -08:00
Jake McGinty e31994ac77 proguard has guarded its last pro
// FREEBIE
2014-11-20 17:45:31 -08:00
Moxie Marlinspike ea9a5decac Update gradle-witness and actually use spongycastle.
// FREEBIE
2014-11-20 16:46:35 -08:00
Moxie Marlinspike 1cb191a6ee Move targetSdkVersion back down to 19.
// FREEBIE
2014-11-20 15:58:32 -08:00
Jake McGinty 60737bdd7b proguard: don't warn for test classes
// FREEBIE
2014-11-19 14:52:02 -08:00
Moxie Marlinspike 2dded4888e No more push encoding pretense.
// FREEBIE
2014-11-19 14:45:12 -08:00
Jake McGinty eaf89735b8 encapsulated delivery icon to separate from lock
and as a bonus some tweaked text sizes and colors
// FREEBIE
2014-11-19 12:56:44 -08:00
Jake McGinty 8fa2f92a91 use latest appcompat and build tools, add dagger pin
// FREEBIE
2014-11-18 17:03:10 -08:00
Moxie Marlinspike 174324e2a0 Potential fix for BroadcastReceiver crash.
// FREEBIE
2014-11-18 14:55:16 -08:00
Jake McGinty bc3686058a optimize new assets
Thanks to @pejakm for pointing out the emoji optimization.
// FREEBIE
2014-11-18 11:27:10 -08:00
Jake McGinty 0110015c8b remove unused image resources
// FREEBIE
2014-11-18 11:27:10 -08:00
Jake McGinty 5ca8a6d421 materialize conversation item indicators
// FREEBIE
2014-11-18 11:27:08 -08:00
Jake McGinty 0fc9ff7490 add "elevation" window overlay for android 4.x too
// FREEBIE
2014-11-17 12:14:09 -08:00
Jake McGinty 08d939b010 fix AppCompat theme crash
Fixes #2084
// FREEBIE
2014-11-17 11:51:49 -08:00
Jake McGinty 020920d988 silly actionbar shadow issue
// FREEBIE
2014-11-17 11:28:57 -08:00
Moxie Marlinspike bd3d9ac533 Update JobManager README.md
// FREEBIE
2014-11-17 09:17:14 -08:00
agrajaghh 85670d95ee Fix README.md formatting
// FREEBIE

Closes #2101
2014-11-17 08:57:21 -08:00
Moxie Marlinspike 3d1007d101 Added README
// FREEBIE
2014-11-16 17:24:05 -08:00
Moxie Marlinspike 35821d444e Move responsibility for Context injection out of JavaSerializer.
// FREEBIE
2014-11-16 17:23:33 -08:00
Moxie Marlinspike 3cd7c2d8e5 libjobqueue javadoc and scoping.
// FREEBIE
2014-11-16 15:53:51 -08:00
Moxie Marlinspike 5b08791086 Fix regression with providers being registered.
// FREEBIE
2014-11-14 15:44:49 -08:00
Jake McGinty 31b9dcb5eb stop crashes when sending sms
// FREEBIE
2014-11-15 02:14:37 +03:00
Jake McGinty 43adc75428 add icon back
// FREEBIE
2014-11-15 02:04:17 +03:00
Jake McGinty 67a4523ca7 update gradle+plugins, update gradle-witness
// FREEBIE
2014-11-14 13:07:04 +03:00
Moxie Marlinspike b35b9be0c8 Add missing copyright headers from libtextsecure.
// FREEBIE
2014-11-12 18:37:16 -08:00
Moxie Marlinspike 9215322846 Abstract out TrustStore interface.
// FREEBIE
2014-11-12 17:09:59 -08:00
Moxie Marlinspike cbebc040cc Make ProGuard with with Dagger 2014-11-12 16:03:58 -08:00
Moxie Marlinspike bea26e83da Correctly process push messages with identity key conflicts. 2014-11-12 15:42:43 -08:00
Moxie Marlinspike a85dbce041 Correctly handle PKWM via SMS. 2014-11-12 15:42:43 -08:00
Moxie Marlinspike baaa3514d4 Fix delivery receipts in group messages.
Fixes #2056
Fixes #2067
Fixes #2087
2014-11-12 15:42:43 -08:00
Moxie Marlinspike 71fdaac1b2 Fix regressions for registration. 2014-11-12 15:42:43 -08:00
Moxie Marlinspike fb31319e52 Put everything under either internal or api. 2014-11-12 15:42:43 -08:00
Moxie Marlinspike 08ed90c5ec Split out Util functions. 2014-11-12 15:42:43 -08:00
Moxie Marlinspike 0d102f76cc Move ListenableFutureTask up to parent. 2014-11-12 15:38:23 -08:00
Moxie Marlinspike 28cb1ed85b Move DirectoryUtil up to parent. 2014-11-12 15:29:59 -08:00
Moxie Marlinspike cd9b20dc9d Move dependency up to parent. 2014-11-12 15:29:59 -08:00
Moxie Marlinspike f09abff407 Refactor out old classes. 2014-11-12 15:29:59 -08:00
Moxie Marlinspike f9934bd8e5 Modernize libtextsecure layout 2014-11-12 15:29:59 -08:00
Moxie Marlinspike 1182052c7f Rename library to libtextsecure 2014-11-12 15:29:58 -08:00
Moxie Marlinspike 0d06d50a65 Let's have JobManager only deal with checked exceptions.
Also, switch to Builder for JobManager construction.
2014-11-12 15:29:58 -08:00
Moxie Marlinspike d9d4ec9d9d Fix some bugs with PKWM padding and attachment detection. 2014-11-12 15:29:58 -08:00
Moxie Marlinspike 9a6f65988f Add support for dependency injection, and accompanying tests. 2014-11-12 15:29:58 -08:00
Moxie Marlinspike 601e233d47 Add account management interface to libtextsecure api 2014-11-12 15:28:08 -08:00
Moxie Marlinspike ae178fc4ec Move API around a little, eliminate TransportDetails interface. 2014-11-12 15:26:25 -08:00
Moxie Marlinspike cafe03a70a Transition the outbound pipeline to JobManager jobs. 2014-11-12 15:26:25 -08:00
Moxie Marlinspike 99f42e2ee1 Move API around. 2014-11-12 15:21:32 -08:00
Moxie Marlinspike a3f1d9cdfd Beginning of libtextsecure refactor.
1) Break out appropriate components.

2) Switch the incoming pipeline from SendReceiveService to
   the JobManager.
2014-11-12 15:21:32 -08:00
Jake McGinty 4cab657ebe clear pending slides when attachment reselected
Fixes #2012

// FREEBIE
2014-10-29 18:50:11 -07:00
Jake McGinty db6f8618e6 padding workaround for bug in appcompat-v7 21.0.0
bug: https://code.google.com/p/android/issues/detail?id=77982

// FREEBIE
2014-10-29 18:28:20 -07:00
Jake McGinty 98af1fb6ee shorten blocks of text
// FREEBIE
2014-10-29 16:53:25 -07:00
Jake McGinty ad1d55f12d enable proguard
// FREEBIE
2014-10-29 16:53:21 -07:00
Jake McGinty 7df49811b7 replace ABS with AppCompat
// FREEBIE
2014-10-29 16:51:55 -07:00
Jake McGinty ff2ac8a66e refactor ListenableFutureTask and make saves async
// FREEBIE
2014-10-28 02:25:41 -05:00
Jake McGinty 53da1f849a in-app image media preview
// FREEBIE
2014-10-28 00:50:01 -05:00
Moxie Marlinspike 503d1ef452 Bump version to 2.2.0
// FREEBIE
2014-10-24 16:51:15 -07:00
Moxie Marlinspike 9accd92757 Updated language translations.
// FREEBIE
2014-10-24 13:18:52 -07:00
agrajaghh 306da92031 Test case and fix for deferred jobs.
Closes #2033
2014-10-24 12:08:03 -07:00
Moxie Marlinspike e7b6a852c5 Fix bug caused by 1mod8 compatibility issue.
In the switch from v3, we bind identities in the message MAC
instead of doing the 1mod8 trick.  Since identity keys were
never set as 1mod8, it seemed like we could just remove it.

However, PreKeys are durable.  If an old client upgrades to v3,
it has a bunch of keys that *were* set to 1mod8 floating around.
The Curve25519 donna code re-sets the private key bits on every
operation, which results in a different key, and breaks the output
of an agreement.

So now we don't intentionally generate keys with 1mod8, but we
have to remove the donna code to honor existing 1mod8 keys for
the rest of time.  Trevor is squarely to blame.

// FREEBIE
2014-10-23 17:11:46 -07:00
Moxie Marlinspike 9dfaf19516 Merge pull request #2028 from mcginty/revert-generic-contenttype
revert content-type generics
2014-10-22 19:37:45 -07:00
Jake McGinty 34aece0b43 revert content-type generics
// FREEBIE
2014-10-22 19:37:04 -07:00
Moxie Marlinspike 9768de2d5e Short circuit self-send.
// FREEBIE
2014-10-22 18:28:03 -07:00
Moxie Marlinspike c3eb0ea9db Check job requirements are satisfied in between retry iterations.
// FREEBIE
2014-10-21 13:50:38 -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 18b0601990 Dependency updates and gradle housekeeping. 2014-10-20 21:06:09 -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 8d6b9ae43e Incorporate PR feedback. Add license and eliminate duplicate code.
// FREEBIE
2014-10-20 18:38:52 -07:00
Moxie Marlinspike a95cc0eba2 Switch to byte array.
// FREEBIE
2014-10-20 18:35:45 -07:00
Moxie Marlinspike 58d101ff2e Support for job "group ids."
A job can specify a group id, and jobs with the same group id
will run sequentially.
2014-10-20 18:35:45 -07:00
Moxie Marlinspike 544f06451f Persistent job queue, derivative of android-priority-jobqueue.
// FREEBIE
2014-10-20 18:35:45 -07:00
Moxie Marlinspike 20cf775b1e Fix up routing activity actions. 2014-10-20 14:55:34 -07:00
Moxie Marlinspike 5fcc135f81 Make sure senderkeys encrypt is correctly initialized. 2014-10-20 12:25:40 -07:00
Moxie Marlinspike 9a0ed659f7 Initial support for sender keys. 2014-10-20 12:25:40 -07:00
Moxie Marlinspike 54612159be Update ed25519 extract and tests 2014-10-20 12:25:40 -07:00
Moxie Marlinspike 355d0be78a Introduce new simultaneous initiate strategy.
1) Fix bugs that prevented decrypt() from being non-transactional
   in some cases.

2) Introduce a new unified storage interface.

3) Transition simultaneous initiate from the "needs refresh"
   strategy to one that uses session state resurrection and
   promotion.
2014-10-20 12:25:40 -07:00
Moxie Marlinspike 73b75a4a27 Fix build. 2014-10-20 12:25:40 -07:00
Moxie Marlinspike c4209a65e3 Don't assert on bad padding. 2014-10-20 12:25:40 -07:00
Moxie Marlinspike 9dce376780 Correctly handle formatting when "one time PreKey" is absent. 2014-10-20 12:25:40 -07:00
Moxie Marlinspike 07c61394e9 When processing PreKeyBundle, archive current session if it exists. 2014-10-20 12:25:40 -07:00
Moxie Marlinspike 3e287f930d Better thread safety for session building <-> use. 2014-10-20 12:25:40 -07:00
Moxie Marlinspike 7b1a37bd91 Make registration ID optionally extended. 2014-10-20 12:25:40 -07:00
Moxie Marlinspike 2db44a1578 Make generated PreKeyIds exclude both 0 and Medium.MAX_VALUE. 2014-10-20 12:25:40 -07:00
Moxie Marlinspike 006c9aae7b Only remove unsigned prekey if bundled message decrypts properly. 2014-10-20 12:25:39 -07:00
Moxie Marlinspike b147a90463 This exception is never thrown. 2014-10-20 12:25:39 -07:00
Moxie Marlinspike 741171c49f Switch to CBC mode with a derived IV.
1) Since we're not CPU or space constrained (and are in fact
   padding), and since keystream reuse would be more catastrophic
   than IV reuse without chosen plaintext.
2014-10-20 12:25:39 -07:00
Moxie Marlinspike c375ed8638 MIPS NDK support. Apparently there are mips devices... 2014-10-20 12:25:39 -07:00
Moxie Marlinspike 238f29c90a Updated to latest of Trevor's ref10-extract 2014-10-20 12:25:39 -07:00
Moxie Marlinspike 084f27a2e8 omg trevor 2014-10-20 12:25:39 -07:00
Moxie Marlinspike 27b5bf54cc Remove 1 mod 8. 2014-10-20 12:25:39 -07:00
Moxie Marlinspike eda393b11c Minor refactoring and renaming. 2014-10-20 12:25:38 -07:00
Moxie Marlinspike c330eef7b9 Make PreKeyWhisperMessage decrypt more reliably atomic. 2014-10-20 12:25:38 -07:00
Moxie Marlinspike 1eb3884b7a Update to latest ref10-extract ed25519 2014-10-20 12:25:38 -07:00
Moxie Marlinspike 5ea3b3038e Remove verification tag.
1) Remove verification tag from PreKeyWhisperMessage.

2) Include sender and recipient identity keys in the MAC of
   each WhisperMessage.
2014-10-20 12:25:38 -07:00
Moxie Marlinspike 641ac9aed9 Rename axolotl terminology.
1) ephemeralKey -> ratchetKey

2) Have the caller specify Alice/Bob orientation.

3) Reorganize verification tag.

4) Remove verification tag from key exchange messages, replace
   with signatures in both directions.
2014-10-20 12:25:38 -07:00
Moxie Marlinspike 82bd75fb75 Fix padding problem. 2014-10-20 12:25:38 -07:00
Moxie Marlinspike c94a7b1eff Make sure "previous counter" is never negative. 2014-10-20 12:25:38 -07:00
Moxie Marlinspike 4caebdcd06 Update tests for new API. 2014-10-20 12:25:38 -07:00
Moxie Marlinspike b3cece27d6 Update SessionCipher javadocs. 2014-10-20 12:25:38 -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 e0d2398ca5 Rename InitializationParameters -> AxolotlParameters 2014-10-20 12:23:14 -07:00
Moxie Marlinspike 3f299936bf Only create signed prekey if push registered. 2014-10-20 12:23:14 -07:00
Moxie Marlinspike 540592d71f Upgrade libaxolotl to the latest gradle plugin. 2014-10-20 12:23:14 -07:00
Moxie Marlinspike 5a9e5672d3 Updated README 2014-10-20 12:23:11 -07:00
Moxie Marlinspike 0a23b5fcd5 Added helper method for generating signed PreKeys. 2014-10-20 12:23:10 -07:00
Moxie Marlinspike f0c22d593f Simplify/clarify internal interfaces and introduce optional types. 2014-10-20 12:23:10 -07:00
Moxie Marlinspike 5f5ddd7c26 Generate SignedPreKey records, improve SignedPreKey cleanup. 2014-10-20 12:23:08 -07:00
Moxie Marlinspike 144f269059 Upgrade curve25519-donna to latest. 2014-10-20 12:17:24 -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 fcaa3f0d73 Simplify HKDF interface. 2014-10-20 12:17:23 -07:00
Moxie Marlinspike 64b40df15b Add V3 support for KeyExchangeMessage case.
1) V3 KeyExchangeMessages can now contain signatures and
   verification tags.
2014-10-20 12:17:23 -07:00
Moxie Marlinspike 77ff9cece8 Add a 'verification tag' to incoming PreKeyWhisperMessage bundles. 2014-10-20 12:17:23 -07:00
Moxie Marlinspike 6326ef73f3 Split HKDF secret derivation and parsing. 2014-10-20 12:17:23 -07:00
Moxie Marlinspike f29d1e6269 Add support for a compliant HKDF implementation. 2014-10-20 12:17:23 -07:00
Moxie Marlinspike d6c5e92c9d Collapse RatchetingSessionV2 and RatchetingSessionV3. 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 2ed8d333d9 Add ed25519 2014-10-20 12:14:18 -07:00
Moxie Marlinspike 79020cd33c Better FS Locking. 2014-10-20 12:14:18 -07:00
Moxie Marlinspike c8757c2134 Make helper static. 2014-10-20 12:14:18 -07:00
Moxie Marlinspike 2a65257182 Add serialization helpers for IdentityKeyPair. 2014-10-20 12:14:18 -07:00
Moxie Marlinspike 931605a1c4 Move identity key verification into libaxolotol. With tests. 2014-10-20 12:14:18 -07:00
Moxie Marlinspike 81ae9af2e4 Add "last resort" PreKey generation to KeyHelper. 2014-10-20 12:14:17 -07:00
Moxie Marlinspike e84a0948e9 Update README 2014-10-20 12:14:17 -07:00
Moxie Marlinspike 5239b3e8f8 Add basic README. 2014-10-20 12:14:17 -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
Moxie Marlinspike fe3d91c40c Bump version to 2.1.10
// FREEBIE
2014-10-18 14:19:45 -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
Moxie Marlinspike cfccd367ad Bump version to 2.1.9
// FREEBIE
2014-10-13 19:02:37 -07:00
Moxie Marlinspike 2c8c6a410c Updated language translations.
// FREEBIE
2014-10-13 18:11:20 -07:00
Jake McGinty 2075bba86c switch back to BufferedInputStream
// FREEBIE
2014-10-13 15:38:27 -07:00
Jake McGinty 1d7b47c982 add CM APN list, remove non-MMS APN info
Fixes missing Verizon APN. Overall, smaller DB size but more APN info.
// FREEBIE
2014-10-13 12:33:54 -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
Moxie Marlinspike f1d230ce6e Merge pull request #1964 from mcginty/maven-https
use https maven central
2014-10-01 17:16:11 -07:00
Jake McGinty f51a5aa7eb use https maven central
// FREEBIE
2014-09-30 21:46:13 -07:00
Moxie Marlinspike cf9c9bbfd7 Bumping version to 2.1.8
// FREEBIE
2014-09-15 19:34:30 -07:00
Jake McGinty b8a3e87f3d custom redirect logic
// FREEBIE
2014-09-15 14:13:27 -07:00
Moxie Marlinspike e5bad2746f Merge pull request #1917 from mcginty/mccmnc-crash
don't crash if we can't get an mccmnc
2014-09-15 09:32:28 -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
Moxie Marlinspike d979593cbb Bump version to 2.1.7 2014-09-06 15:38:55 -07:00
Moxie Marlinspike 0808e00d0e Updated translations.
// FREEBIE
2014-09-06 14:54:32 -07:00
Moxie Marlinspike 2045c828be Merge pull request #1892 from mcginty/bitmap-memory
fallback to imprecise scaling if low memory
2014-09-06 14:53:56 -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
Moxie Marlinspike 350eb438c0 Bump version to 2.1.6
// FREEBIE
2014-08-20 16:48:12 -07:00
Moxie Marlinspike da7bbf4144 Merge pull request #1862 from mcginty/db-localization-ignore
disable localized collators in ApnDB
2014-08-20 14:39:50 -07:00
Jake McGinty a0842f329f disable localized collators in ApnDB
// FREEBIE
2014-08-20 13:41:59 -07:00
Moxie Marlinspike 567224b4a6 Merge pull request #1861 from mcginty/cursor-leak
prevent another cursor leak
2014-08-20 12:32:24 -07:00
Jake McGinty 9b495d8c83 prevent another cursor leak
// FREEBIE
2014-08-20 12:29:40 -07:00
Moxie Marlinspike 8c55ea09d9 Updated language translations.
// FREEBIE
2014-08-20 10:53:16 -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
Jake McGinty dee23b266f update support-v4 library
Fixes #1832
// FREEBIE
2014-08-14 23:29:25 -07:00
Moxie Marlinspike 4cf57fbb55 Bump version to 2.1.5
// FREEBIE
2014-08-13 16:47:47 -07:00
Moxie Marlinspike 85da05397a Update language translations.
// FREEBIE
2014-08-13 15:14:08 -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 d2edda837a Update Play services and add checksum
Quoting Google employee: "5.0.77 had some serious issues, team didn't want
anyone using it"

// FREEBIE
2014-08-12 20:12:52 -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
Moxie Marlinspike edb04138c2 Merge pull request #1825 from mcginty/resource-removal
remove old, unused resources
2014-08-12 13:57:49 -07:00
Jake McGinty 8bf537bb09 remove old, unused resources
// FREEBIE
2014-08-12 12:12:08 -07:00
Moxie Marlinspike b80593b5f5 Merge pull request #1821 from mcginty/mms-npe
prevent MMS notification NPE
2014-08-11 11:08:44 -07:00
Jake McGinty b61e7839f4 prevent MMS notification NPE
// FREEBIE
2014-08-10 21:15:55 -07:00
Drew Hintz 7b41b1492e Shrink png files using pngout. Saves 608kB. FREEBIE. 2014-08-07 17:56:08 -07:00
Moxie Marlinspike 928b9687ef Bump version to 2.1.4
// FREEBIE
2014-08-04 20:48:02 -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 dda4459e5a Bump version to 2.1.3
// FREEBIE
2014-08-02 23:43:45 -07:00
Moxie Marlinspike 8726dd51be Can't toast on this thread.
// FREEBIE
2014-08-02 23:15:57 -07:00
Moxie Marlinspike e53bbe8453 Bumping version to 2.1.2
// FREEBIE
2014-08-01 16:14:02 -07:00
Moxie Marlinspike ecb67cd84f Updated language translations.
// FREEBIE
2014-08-01 14:41:00 -07:00
Moxie Marlinspike 861d27279d Whoops, add GcmRegistrationService to Manifest.
// FREEBIE
2014-08-01 14:33:17 -07:00
Veeti Paananen bef5b8f3e9 Occupy all vertical space for emoji grid
Fixes the recent emoji list leaving an empty gap at the bottom of the
drawer depending on the number of items shown.
2014-08-01 13:40:19 -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
jhertel 26d58047b5 Update BUILDING.md
Correction of a typo and a few style incongruences.

// FREEBIE
Closes #1750
2014-07-28 09:36:03 -07: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 c632b32ff8 Bumping version to 2.1.1 2014-07-19 11:13:18 -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 23a1c1c8fa Upgrade to latest Android gradle plugin
// FREEBIE
Closes #1660
2014-07-16 11:12:51 -07:00
Moxie Marlinspike 3a62a8b428 Bumping version to 2.1.0 2014-07-15 10:05:15 -07:00
Moxie Marlinspike cfac27645b Update language translations.
// FREEBIE
2014-07-14 18:44:34 -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 61d18f49ad Merge pull request #1678 from veeti/check-icon
Add xxhdpi check drawable for notifications
2014-07-07 16:09:44 -05:00
Veeti Paananen f26f89d63d Add xxhdpi check drawable for notifications
Fixes blurry mark as read icon on Android Wear. FREEBIE.
2014-07-05 02:40:00 +03:00
Moxie Marlinspike 66aad852f8 Merge pull request #1642 from mcginty/canonical-bunk-addresses
don't try to load recipients for each filter text
2014-06-25 08:06:00 -07:00
Jake McGinty da0eb5a779 no longer load a recipient for each filter text
// FREEBIE
2014-06-24 20:33:04 -07:00
Jake McGinty a82d2dfc5c Revert "change out key cached icon to be more unique"
This reverts commit d6d76fa953.
2014-06-24 19:20:16 -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
Moxie Marlinspike db1d846833 Merge pull request #1631 from mcginty/disable-encrypted-export
temporarily disable encrypted backup
2014-06-23 07:18:50 -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 622d8975fc add section about submitting useful bug reports 2014-06-20 12:24:36 -07:00
Moxie Marlinspike 81365eff36 Merge pull request #1614 from mcginty/contact-list-security
move FLAG_SECURE to PassphraseRequiredMixin
2014-06-17 21:47:00 -07:00
Florian Walch 453610c39f Add Travis CI config.
//FREEBIE
2014-06-17 14:13:42 -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
phenx-de 5ae8a7a8c4 Improved the warning icon: Higher resolution, better size. 2014-06-12 14:24:08 -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
Jake McGinty 16764f74fe reorganize readme
// FREEBIE
2014-06-12 10:02:18 -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
Chris V b990202468 Allow passphrase unlock from "unlock" keyboard action. 2014-06-11 21:45:03 -07:00
Pascal Hartig 7208018097 Clear search when opening the drawer
Before this change opening the drawer while a filter was active
would hide the search bar but keep the conversation list filtered,
so there was no indication of an active filter.
2014-06-11 18:12:07 -07:00
Moxie Marlinspike c719a48a2c Move media attachment long-click event to context menu.
Long-click on a media attachment will now bring up the normal
context menu for a ConversationItem long-click, but with the
addition of a "save attachment" option.

This allows users to long-click on messages with media in them
and still see the other contextual menu options.

// FREEBIE
2014-06-11 18:04:14 -07:00
Moxie Marlinspike 68747142d6 Add correct contextual menu options on 'Send' button.
[Send TextSecure message | Send unencrypted SMS | Send encrypted SMS]

// FREEBIE
2014-06-11 15:34:01 -07:00
Lukas Barth 7c9282f306 Cache circle cropped photos on Recipient. 2014-06-11 12:33:57 -07:00
Lukas Barth fa3cb871d0 Use ACTION_OPEN_DOCUMENT for Android >= KitKat.
Fixes #926.

We have to do this, since with the new Storage Access Framework,
otherwise we can open the Uri only *once*. This would work well
unless someone saves a draft and goes back to the conversation -
then the Uri is opened again without the required permissions.

See:

https://developer.android.com/guide/topics/providers/document-provider.html#client

...for details.
2014-06-11 11:58:55 -07:00
Moxie Marlinspike a19899a11f Merge pull request #1589 from jlund/cyanogen-error-message
Fixing a typo in the WhisperPush error message
2014-06-11 09:20:50 -07:00
Joshua Lund 667da3b2cf Fixing a typo in the WhisperPush error message
// FREEBIE
2014-06-10 20:56:45 -06:00
Moxie Marlinspike 1a86483b7f Merge pull request #1581 from mcginty/android-studio-060
Upgrade android plugin to stay compatible with latest Android Studio
2014-06-10 09:07:59 -07:00
Jake McGinty de90222c95 Upgrade android plugin to stay compatible with latest Android Studio
// FREEBIE
2014-06-09 23:31:52 -07:00
Moxie Marlinspike 7cf84e904a Merge pull request #1573 from Jabro/master
Added APN Settings for T-Mobile UK
2014-06-09 09:44:50 -07:00
Jabro 12e92b9cdf Added APN Settings for T-Mobile UK
Fixes #1558
2014-06-09 12:43:19 +02:00
Moxie Marlinspike 4153c8dae9 No need to verify a local module.
// FREEBIE
2014-06-06 09:14:43 -07:00
Moxie Marlinspike ef72702f0d Include gradle-witness plugin for verifying dependencies. 2014-06-05 10:19:28 -07:00
Moxie Marlinspike f5e2010455 Merge pull request #1554 from thoughtbox/patch-8
Capitalisation according to Android guidelines
2014-06-05 09:06:19 -07:00
thoughtbox bc769debe2 Capitalisation according to Android guidelines
Not all updated capitalisations were correct.
2014-06-05 09:24:31 +02:00
Moxie Marlinspike df1c96a662 Do country code detection if we can't get the full number off SIM. 2014-06-03 19:16:27 -07:00
Corbin Souffrant db356a0ec9 Fixed capitalization inconsistensies with Android guidelines.
Fixes #673
2014-06-03 18:51:21 -07:00
Michael Bennett 468eb3382c Add sorting by default phone number
Currently the order of numbers is times contacted -> displayName ->
phone type (mobile vs. home, etc.). This adds whether the number has
been saved as the default number for a contact to sort numbers belonging
to the same contact.

Fixes #580
2014-06-03 18:18:41 -07:00
Moxie Marlinspike 12d217991c Use dynamic PBE iteration count.
Fixes #184
Fixes #247
2014-06-03 17:59:11 -07:00
Ruben Pollan 5785860631 Support for multiple APN settings on the same provider 2014-06-03 16:24:20 -07:00
Moxie Marlinspike addea8d340 Validate recipients at send time rather than when constructed.
Fixes #665
2014-06-03 14:58:19 -07:00
Moxie Marlinspike 59899b1caf Merge pull request #1550 from mcginty/email-send-fix
send email addresses as mms
2014-06-03 12:46:08 -07:00
Jake McGinty 829097d891 send email addresses as mms
// FREEBIE
2014-06-03 12:35:56 -07:00
Moxie Marlinspike d95bb21065 More ideology.
// FREEBIE
2014-06-01 17:05:21 -07:00
Moxie Marlinspike 0fbe765447 Expand ideology.
//FREEBIE
2014-06-01 10:22:31 -07:00
Moxie Marlinspike f190321e40 Add some ideology to contributing.md
//FREEBIE
2014-05-31 15:05:59 -07:00
Michael Kaiser 1cb4d479f1 Finish activity before restarting it
The current activity needs to be finished before calling startActivity.
Otherwise, activities with launchMode singleTask (ConversationListActivity)
will receive a new Intent instead of getting restarted. And in response
to the new Intent, they will run onResume once again and trigger a second restart.

Fixes #1292
2014-05-20 10:16:48 -07:00
McLoo 023d776e96 Reactivate a group if a contact gets readded
Fixes #723 //FREEBIE

Removes the own number from group on leaving, to receive a proper
re-added message
2014-05-19 13:18:28 -07:00
Jake McGinty ce7b8ab75a new passphrase prompt activity
// FREEBIE
2014-05-19 12:16:42 -07:00
agrajaghh 82bb0c07e8 Fix AlertDialog Background on Android 2.3 2014-05-16 17:18:57 -07:00
Manuel d8d5848dae Change draw selector to background 2014-05-16 11:43:47 -07:00
Jake McGinty 542e1984c1 sanely handle duplicate contacts in db
// FREEBIE
2014-05-16 09:16:20 -07:00
Jake McGinty dff6997a65 don't call replace() on null formattedNumber
Fixes #1397
// FREEBIE
2014-05-16 09:13:50 -07:00
Moxie Marlinspike 5bfe64752e Merge pull request #1495 from mcginty/icon-cached
change out key cached icon to be more unique
2014-05-16 08:30:31 -07:00
Jake McGinty d6d76fa953 change out key cached icon to be more unique
Fixes #651
// FREEBIE
2014-05-14 17:52:49 -07:00
Sebastian 03ecd79fe0 fix receiving utf-8 characters in multimedia push messages
Throw AssertionError instead of logging and trying to recover
2014-05-01 15:06:44 -07:00
Moxie Marlinspike 7a3d509ef4 Merge pull request #1437 from mcginty/mms-npe
prevent NPE in MMS logic
2014-05-01 13:05:01 -07:00
Jake McGinty 7a54f33f68 Merge pull request #1354 from agrajaghh/fix_empty_contact_filter
Fix empty contact filter not working properly
2014-05-01 14:18:25 -05:00
Jake McGinty d4b4667d5a prevent NPE in MMS logic
Fixes #1434
// FREEBIE
2014-04-28 14:05:05 -07:00
thoughtbox 08d899e2e1 Slightly more verbose "no legacy support" message. 2014-04-28 11:02:48 -07:00
Jake McGinty 716519f4b8 Merge pull request #1383 from jocelynthode/master
Add time to messages when they are within the week
2014-04-27 19:19:49 -07:00
Moxie Marlinspike 02d3760b31 Merge pull request #1368 from mcginty/contact-select-header-dark
fix contact selection header theming
2014-04-24 18:47:13 -07:00
Jocelyn Thode 521fbc77c6 Add time to messages when they are within the week
//FREEBIE
2014-04-17 16:10:27 +02:00
Moxie Marlinspike 0574ec170a Display legacy message error when V1 message is received. 2014-04-16 11:47:51 -07:00
Moxie Marlinspike cebad39422 Collapse some v2 interfaces now that there's no v1. 2014-04-16 11:47:51 -07:00
Moxie Marlinspike 1d07ca3e6f Remove V1 code. 2014-04-16 11:47:51 -07:00
Moxie Marlinspike ca8c950553 Bump version to 2.0.8
// FREEBIE
2014-04-15 15:59:47 -07:00
Jake McGinty 7349378d8d fix contact selection header theming
Fixes #1343
// FREEBIE
2014-04-14 17:43:13 -07:00
Moxie Marlinspike dc9a9b14b2 Merge pull request #1367 from mcginty/routing-undo
revert RoutingActivity flags
2014-04-14 15:02:42 -07:00
Jake McGinty df9afc4e7f revert RoutingActivity flags
// FREEBIE
2014-04-14 14:49:15 -07:00
agrajaghh e9a50ce6c3 fix empty contact filter 2014-04-13 15:00:04 +02:00
Moxie Marlinspike 4d52d2ee36 Bumping version to 2.0.7 2014-04-11 10:58:39 -07:00
Moxie Marlinspike c21e5b74f1 Updated language translations. 2014-04-11 10:13:23 -07:00
Moxie Marlinspike c5b3b27c49 Merge pull request #1339 from mcginty/broken-build
fix old code breaking build
2014-04-11 10:13:05 -07:00
Jake McGinty ccb0cc6baf fix old code breaking build
// FREEBIE
2014-04-11 10:00:30 -07:00
Moxie Marlinspike ef77dc9d6d Merge pull request #1324 from mcginty/actionbar-cleanup
use normal means to set actionbar icon
2014-04-10 17:57:53 -07:00
Jake McGinty 454673cd0c Update ActionBar title on language change
Fixes #1329
// FREEBIE
2014-04-10 17:55:03 -07:00
Jake McGinty 0dc6ec294b use normal means to set actionbar icon
// FREEBIE
2014-04-10 17:52:58 -07:00
Santoso Wijaya 12dac6ccc3 ShareActivity, destruction of RecipientsPanel
// FREEBIE
2014-04-10 13:16:14 -07:00
Jake McGinty e2f7c1529a group and contact list fixes
1) Updating a group without changing the avatar will keep that
   avatar

2) Prohibit adding non-push users to an existing push group

3) Add Android contacts to the same database. Takes a small amount
   more time and memory, but allows queries to not be a hack, and
   enables us to dedupe numbers in JB and higher devices.

// FREEBIE
2014-04-10 11:14:06 -07:00
Jake McGinty b715debefc mark auto-fallback to sms as forcedSms
// FREEBIE
2014-04-10 10:50:35 -07:00
Moxie Marlinspike 4438b4ae69 Add a TrustManager that blacklists via serial numbers. 2014-04-09 20:50:32 -07:00
Jake McGinty 7b3f2c169a Fix issue with weird exiting animation from conversation
Fixes #1312
// FREEBIE
2014-04-08 10:57:17 -07:00
Matt Enright 7ceaf59bcc Display send date for incoming messages
Fixes #597.
2014-04-05 14:39:58 -07:00
Moxie Marlinspike 4caff2e511 Merge pull request #1297 from McLoo/master
Stop recycled bitmap crashes
2014-04-05 13:38:45 -07:00
McLoo 5e8e13ed5a Stop recycled bitmap crashes
Fixes #792
2014-04-04 23:49:12 +02:00
Moxie Marlinspike 4ea481f9dc Bumping version to 2.0.6
// FREEBIE
2014-04-04 09:27:05 -07:00
Moxie Marlinspike e94fa0d752 Updated language translations.
// FREEBIE
2014-04-03 16:02:36 -07:00
Moxie Marlinspike 817070e76f Merge pull request #1288 from mcginty/send-icons-redux-redux
remove lock coloring in send icons
2014-04-03 15:11:33 -07:00
Jake McGinty 92b90cd798 remove lock coloring in send icons
// FREEBIE
2014-04-03 14:05:34 -07:00
Moxie Marlinspike 33ecc4d690 Add null check. // FREEBIE 2014-04-03 14:01:15 -07:00
Jake McGinty 7d5e66eb6e fix send icon merge botch, encryption icons logic
// FREEBIE
2014-04-03 12:12:59 -07:00
Moxie Marlinspike d4ac0c077d Merge pull request #1248 from mcginty/wrong-group-secure
outgoing group MMS should not be encrypted and considered push
2014-04-03 11:22:00 -07:00
Jake McGinty cbe87aa05c outgoing group MMS should never be encrypted
// FREEBIE
2014-04-03 11:21:13 -07:00
Moxie Marlinspike 9e2f82954f Merge pull request #1260 from mcginty/message-layout-lint
Conversation item tweaks
2014-04-03 10:07:23 -07:00
Jake McGinty d4d684b670 simplified layouts 2014-04-03 09:59:32 -07:00
Moxie Marlinspike c43ef8bce0 Merge pull request #1233 from mcginty/send-icons
new send icons, fix logic for disabling/enabling the button
2014-04-03 09:58:10 -07:00
Jake McGinty 54a882a11d new send icons, fix logic for disabling/enabling
// FREEBIE
2014-04-03 09:49:50 -07:00
Moxie Marlinspike 73e2f6ce59 Merge pull request #1272 from mcginty/flag-secure
hide screen security when unsupported
2014-04-02 22:14:08 -07:00
Moxie Marlinspike 54d2184c72 Merge pull request #1205 from mcginty/contact-select
refactor and improve contact selection
2014-04-02 22:11:44 -07:00
Jake McGinty 832763f695 UX for unencrypted fallback case 2014-04-02 22:10:51 -07:00
Moxie Marlinspike 40629a3bcf Fix decryption corner case when passphrase is disabled. 2014-04-02 22:10:51 -07:00
Moxie Marlinspike 5a3daf4846 Curve25519 keys to 1 mod 8 for ephemerals. 2014-04-02 22:10:51 -07:00
Moxie Marlinspike fd1a18d2d0 Don't display duplicate push messages. 2014-04-02 22:10:50 -07:00
Moxie Marlinspike ad5d6d5bb7 Add refresh path for PreKey queue. 2014-04-02 22:10:50 -07:00
Moxie Marlinspike 926d3c929f Handle simultaneous initiate protocol case.
1) Modify SessionRecord to store a list of "previous" sessions
   in addition to the current active session.  Previous sessions
   can be used for receiving messages, but not for sending
   messages.

2) When a possible "simultaneous initiate" is detected, push the
   current session onto the "previous session" stack instead of
   clearing it and starting over.

3) Additionally, mark the new session created on a received
   possible "simultaneous initiate" as stale for sending.  The
   next outgoing message would trigger a full prekey refresh.

4) Work to do: outgoing messages on the SMS transport should
   probably not use the existing session if it's marked stale
   for sending.  These messages need to fail and notify the user,
   similar to how we'll handle SMS fallback to push users before
   a prekey session is created.
2014-04-02 22:10:50 -07:00
Moxie Marlinspike edc20883eb Merge pull request #1281 from thoughtbox/patch-6
Changed MMS Proxy setting for 24201 (Telenor)
2014-04-02 09:14:32 -07:00
thoughtbox 0d7363e36e Changed MMS Proxy setting for 24201 (Telenor)
Going forward, Telenor will be using FQDN.
2014-04-02 12:47:05 +02:00
Jake McGinty ca6d8a8a0d refactor and improve contact selection
* unify single and multi contact selection activities
* follow android listview design recommendations more closely
* add contact photos to selection
* change indicator for push to be more obvious
* cache circle-cropped bitmaps
* dedupe numbers when contact has multiple of same phone number

// FREEBIE
2014-04-01 14:56:45 -07:00
Moxie Marlinspike c414334059 Merge pull request #1228 from backspace/support-commas-in-contact-names
Remove commas in names in recipient list string
2014-03-31 08:39:15 -07:00
Moxie Marlinspike 24a38985cf Merge pull request #1249 from mcginty/convo-scroll
scroll to the new message in conversation
2014-03-31 08:14:26 -07:00
Brian Conway 60f2d4d6b6 Add APN for Aio wireless (USA).
Source: http://www.aiowireless.com/support/Apps-and-Services/Bring-Your-Own-Device-BYOD/customer/Bring-Your-Own-Android.html
2014-03-31 08:09:10 -07:00
Jake McGinty 06659fd98f hide screen security when unsupported
// FREEBIE
2014-03-30 02:28:38 -07:00
Jake McGinty 3c9c5213a7 Merge pull request #946 from DorianScholz/groupavatar
Use standard intent to select group avatar.
2014-03-28 12:07:30 -07:00
Dorian Scholz a183f8d387 Fix #641 by using standard intent to select group avatar.
The ACTION_GET_CONTENT used with cropping is not supported on all devices.
To make this work more reliably I removed the cropping and MediaStore.EXTRA_OUTPUT.
The image is now read via getContentResolver().openInputStream() which should work on all device including KitKat/CM11.
2014-03-27 12:44:56 +01:00
Jake McGinty 216446c55b scroll to the new message in conversation
// FREEBIE
2014-03-26 15:12:01 -07:00
Buck Doyle bc143059f6 Remove separators from names in recipient list
Fixes #1225 and #1174
2014-03-25 11:11:20 -07:00
Jake McGinty 33000582ed one more try at that one..
// FREEBIE
2014-03-25 03:31:44 -07:00
Jake McGinty e651f352bb fix NPE in isPushDestination
// FREEBIE
2014-03-24 17:02:39 -07:00
Buck Doyle cab4a06974 Remove commas in names in recipient list string
Fixes #1225
2014-03-23 15:02:21 -07:00
martinstingl ccc1f5e9d6 Added the dependency "Android SDK Build-tools".
//FREEBIE
2014-03-20 18:06:58 -07:00
Moxie Marlinspike b860aeff85 Minor ConversationList scrolling optimization. 2014-03-16 14:36:21 -07:00
Martin Ranta 34c885f08d Fixed a few localization names. 2014-03-16 10:06:26 -07:00
Moxie Marlinspike 71ab6f5c7d Merge pull request #1178 from backspace/extract-input-settings-string
Extract Input Settings preference header string.
2014-03-16 10:02:59 -07:00
Buck Doyle 61fbf382eb Extract Input Settings preference header string.
Fixes #1159

FREEBIE
2014-03-15 22:18:14 -04:00
Moxie Marlinspike 8b21f3f7d6 Bump version to 2.0.5 2014-03-14 10:18:13 -07:00
Moxie Marlinspike 941d0089f4 Add languages to selector 2014-03-14 09:40:58 -07:00
Moxie Marlinspike 8b8c6dd45f Updated translations
//FREEBIE
2014-03-14 09:40:43 -07:00
Jake McGinty 938545444e Merge pull request #984 from mcginty/sms-prefs
more precise sms controls
2014-03-13 21:03:02 -07:00
Jake McGinty d827ab1b36 more precise sms controls
// FREEBIE
2014-03-13 20:59:20 -07:00
Jake McGinty 4701e59197 Merge pull request #1076 from phenx-de/fix-big-fontsize
Fix conversation list view for larger text sizes.
2014-03-13 13:05:56 -07:00
Moxie Marlinspike 2b2da84918 Merge pull request #1140 from psm14/bugs/group_mms_local_number
Also check cc for duplicates in group MMS
2014-03-12 18:58:08 -07:00
Pat McLaughlin d229a4274c Also check cc for duplicates 2014-03-12 20:49:55 -04:00
3xo 64711771f0 Fix locale when using country codes. 2014-03-12 16:56:24 -07:00
Moxie Marlinspike ad54d2a05f Modify string tag.
//FREEBIE
2014-03-12 09:57:32 -07:00
Wikinaut 068c40336c added Google Play Store text 2014-03-11 14:18:23 -07:00
Jake McGinty 11cfc4f1a1 upgrade gradle version
// FREEBIE
2014-03-11 01:05:24 -07:00
phenx-de f51989b23e Fix conversation list view for larger text sizes. 2014-03-10 10:32:32 +01:00
Moxie Marlinspike 0b4fe84a41 Format-neutral compare numbers in MMS group with local device.
Closes #1018
2014-03-07 13:05:35 -08:00
Moxie Marlinspike b855a1805f Mark message details on pending messages as such.
Closes #1034
2014-03-07 12:39:16 -08:00
3xo 339193af12 Give user the opportunity to chose no LED-notification. 2014-03-07 12:04:19 -08:00
Jake McGinty 574f33c92d Merge pull request #1069 from phenx-de/color-cleanup
Moved colors to the right place.
2014-03-07 12:00:49 -08:00
Manuel b6a9eb5bf2 Closes #913: Message ID is -1 when called in aggregate 2014-03-07 11:59:53 -08:00
phenx-de 54b43b7536 Moved colors to the right place. 2014-03-07 11:03:22 +01:00
Moxie Marlinspike 37c9fb7cd1 Merge pull request #1053 from shenki/master
ConversationFragment: enable back button to dismiss message detail dialog
2014-03-06 20:46:43 -08:00
Joel Stanley 667d22bace ConversationFragment: enable back button to dismiss
The ConversationFragment has a AlertDialog for showing the message
details, which sets the cancelable property to be false. This stops the
user from being able to use the back button to dismiss the dialog.
2014-03-06 15:32:51 +10:30
Moxie Marlinspike 3d782449ed Merge pull request #1025 from DorianScholz/sharetextplain
Only receive text/plain.
2014-03-05 09:50:57 -08:00
Moxie Marlinspike 003095b08c Merge pull request #1020 from lxgr/fix-screensec
Use the "screen security" preference for the conversation list
2014-03-05 09:12:33 -08:00
Jake McGinty d121d9531e Merge pull request #992 from veeti/overdraw
Fix overdraw issues in the conversation view
2014-03-05 00:10:06 -08:00
Veeti Paananen 42aeca26f1 Fix overdraw issues in the conversation view
Remove the redundant window background and row backgrounds to improve
drawing performance.
2014-03-05 08:03:55 +02:00
Dorian Scholz ea8a1bae46 Only receive text/plain.
At the moment only text/plain is handled in RoutingActivity, so set filter in manifest accordingly.
This prevents #316. But at some point sharing text/calendar or better */* would be nice...

// FREEBIE
2014-03-04 23:57:36 +01:00
Jake McGinty 054fcdca8d Merge pull request #1007 from SamWhited/issue998
s/Verify Recipient/Verify Identity/
2014-03-04 13:49:49 -08:00
Lukas Ribisch 278220cf18 Use the "screen security" preference for the conversation list
It was previously only used for ConversationListActivity. This should be all
the locations (according to a grep for FLAG_SECURE).

FREEBIE
2014-03-04 21:04:04 +01:00
Chris Glass 35eeaa9bd5 Added more build information to BUILDING.md
Added more instructions about setting up a development environment.
2014-03-04 08:44:54 -08:00
Moxie Marlinspike fbf02603ce Bump version to 2.0.4 2014-03-04 08:39:31 -08:00
Sam Whited fa423e4432 s/Verify Recipient/Verify Identity/ 2014-03-04 09:55:45 -05:00
Moxie Marlinspike 5caec4a146 Updated language translations. 2014-03-03 19:13:38 -08:00
Moxie Marlinspike dc77c43435 Merge pull request #796 from mcginty/pending_messages
pending messages more accurately conveyed to user
2014-03-03 18:49:48 -08:00
Jake McGinty 827298d1a2 Merge pull request #975 from tinloaf/reloadcontactlist
Reload contact list after directory refresh // FREEBIE
2014-03-03 18:01:10 -08:00
Lukas Barth 48f5b932f7 Reload contact list after directory refresh // FREEBIE
I forgot that in my PR, it seems.
2014-03-03 21:18:38 +01:00
Jake McGinty 90169e9468 pending messages more accurately conveyed to user 2014-03-03 11:56:54 -08:00
Moxie Marlinspike b5fe378bc9 Workaround for Android bug when swiped from recent tasks list.
Closes #168

https://code.google.com/p/android/issues/detail?id=53313
2014-03-03 11:45:05 -08:00
Moxie Marlinspike 0f53c9d170 Merge pull request #966 from backspace/add-video-sharing
Support videos from other apps. Fixes #949
2014-03-03 11:01:02 -08:00
Moxie Marlinspike 3474950830 Merge pull request #956 from tinloaf/refreshfromlist
Add possiblity to refresh the push directory directly from contact list
2014-03-03 10:09:32 -08:00
Lukas Barth 39ee363150 Add possiblity to refresh the push directory directly from the contact picking list. Fixes #835. Fixes #859.
Thanks benalbrecht for the icons.
2014-03-03 18:23:14 +01:00
Buck Doyle 411e3ceff6 Support videos from other apps. Fixes #949 2014-03-03 11:55:34 -05:00
Moxie Marlinspike b7f8c3b3d3 Merge pull request #961 from cloudkicker/notification_preferences
Make notification preferences look normally
2014-03-03 08:53:00 -08:00
Moxie Marlinspike 3efa8e6899 Merge pull request #955 from benalbrecht/nocount
Use new icon from #905 for push message disable confirmation box
2014-03-03 08:33:10 -08:00
Vladislav Meshochkin 948f481530 Make notification preferences look normally 2014-03-03 19:22:51 +04:00
Benjamin Albrecht 716fdefa4c Use icon from #905 for push message disable confirmation box
//FREEBIE
2014-03-03 11:44:14 +01:00
Moxie Marlinspike 2dc893730a Auto-update every 12 hours instead.
// FREEBIE
2014-03-02 16:19:05 -08:00
Moxie Marlinspike 1af99ce155 Fix for periodic directory refresh.
// FREEBIE
2014-03-02 16:14:00 -08:00
Moxie Marlinspike 0850f1b0f1 Add libcurve25519 bins.
// FREEBIE
2014-03-02 16:06:37 -08:00
Florian Walch 1ddc45fd9c Build native code for multiple architectures.
* Include native libs without requiring intermediate .jar.
 * Fix build warnings; use latest build tools.
2014-03-02 16:06:37 -08:00
Moxie Marlinspike 977765c80f Merge pull request #941 from Wikinaut/add-new-string-ViewIdentityActivity_my_identity_fingerprint
add new string ViewIdentityActivity_my_identity_fingerprint
2014-03-02 15:50:18 -08:00
Thomas Gries 4b2d07ab35 add new string ViewIdentityActivity_my_identity_fingerprint 2014-03-03 00:45:42 +01:00
Jens Füllenbach 003ebe6364 Added the color white to the notification colors of the LED. 2014-03-02 14:11:31 -08:00
Benjamin Albrecht 2f7c005c23 Show confirmation box before disabling push messages 2014-03-02 14:09:54 -08:00
Moxie Marlinspike 367b481d07 Merge pull request #905 from benalbrecht/dialog_icons
Use modern icons in info and alert dialogs for ICS+
2014-03-02 14:01:52 -08:00
Moxie Marlinspike 5cd8c922d2 Merge pull request #648 from veeti/tweaks-and-polish
Assorted tweaks and polish
2014-03-02 14:01:20 -08:00
Moxie Marlinspike a2fe8a9d5c Make default group avatar icon actually work. 2014-03-02 13:22:02 -08:00
Benedict Pregler ee921a8f49 fixed some hardcoded strings 2014-03-02 13:22:02 -08:00
Benedict Pregler e0394b4481 a little typo mistake 2014-03-02 13:22:02 -08:00
Veeti Paananen de100f5be7 Add missing spaces 2014-03-02 09:40:45 +02:00
Veeti Paananen a020a57be6 End conversation selection action mode if all deselected
This seems to be common convention in most apps.
2014-03-02 09:40:35 +02:00
Veeti Paananen 28f1a0a636 Replace the attachment dialog header icon with something modern 2014-03-02 09:40:35 +02:00
Veeti Paananen 5a807ffc28 Use unified touch highlight in import & export 2014-03-02 09:40:35 +02:00
Veeti Paananen 757cb1c846 Add touch highlight to contact photos 2014-03-02 09:40:35 +02:00
Veeti Paananen 4f066757e7 Use the touch highlight background for the emoji toggle 2014-03-02 09:40:35 +02:00
Veeti Paananen 633aa9b057 Fix the send button's touch highlight color
Introduce a generic touch highlight background drawable, and use the
proper shades of blue (and gray on v19+).
2014-03-02 09:40:35 +02:00
Jake McGinty a5c26b2e16 Merge pull request #921 from liliakai/master
Add contributing.md // FREEBIE
2014-03-01 15:19:32 -08:00
lilia ca561d76ff Add contributing.md // FREEBIE
This file is recognized by github and presented to users who are trying
to open issues and submit pull requests.

Hopefully this more prominent placement will help deter people from
opening issues/prs for translation fixes.
2014-03-01 15:11:21 -08:00
Jake McGinty 107d999ee7 make bithub price update // FREEBIE
thanks lilia
2014-03-01 11:57:46 -08:00
Benjamin Albrecht 0f6c7660cb Use modern icons in info and alert dialogs for ICS+ 2014-03-01 14:42:12 +01:00
Moxie Marlinspike 8ea4db03db Better support for local storage with passphrase disabled.
1) Never get into a state where messages aren't displayed
   unencrypted.

2) Fix bug where locked DB required launching twice.
2014-02-28 15:58:30 -08:00
Moxie Marlinspike 81ee9e31c5 Update behavior for incoming SMS path.
1) On KitKat, unencrypted SMS messages are never stored in
   TextSecure unless it is set as the system-wide default.

2) On KitKat, if TextSecure is set as the system-wide default,
   provide an option to change the default to a different app.

3) Don't store the TextSecure challenge on KitKat+ devices.
2014-02-28 13:40:35 -08:00
Moxie Marlinspike a3e900ecbe Merge pull request #794 from SamWhited/issue788
Add option to disable screen security
2014-02-27 18:02:05 -08:00
Sam Whited 384fb3b2b5 Add option to disable screen security
See WhisperSystems/TextSecure#788
2014-02-27 19:00:39 -05:00
Moxie Marlinspike d795aa30b3 Merge pull request #795 from benalbrecht/nocount
Don't show letter count when SMS mode is disabled
2014-02-27 14:12:27 -08:00
Jake McGinty bac4d63312 Merge pull request #805 from wickedshimmy/fix-sender-details
Don't display sender in outgoing message details
2014-02-27 11:18:51 -08:00
Benjamin Albrecht bf60f90019 Don't show letter count inside a push group or when SMS mode is disabled 2014-02-27 09:32:19 +01:00
Matt Enright 852ca2ac05 Don't display sender in outgoing message details
Because we don't know it. Fixes WhisperSystems#711.
2014-02-26 21:57:17 -05:00
Moxie Marlinspike 038bebfdbb Bump version to 2.0.3 // FREEBIE 2014-02-26 13:08:03 -08:00
Moxie Marlinspike 3b25b87aa8 Fix for NPE 2014-02-26 12:42:16 -08:00
Moxie Marlinspike 5a62856e46 Make SMS delivery reports optional. 2014-02-26 12:38:50 -08:00
Moxie Marlinspike 37a52df4e6 Fix bug that broke notifications for group messages. 2014-02-26 12:31:56 -08:00
Jake McGinty d3148b6766 Merge pull request #764 from m0jo/master
Fix hpyerlinking recieved/sent date in messages
2014-02-26 09:46:42 -08:00
Tim Bücher 6fb85aff6d Fix hpyerlinking recieved/sent date in messages 2014-02-26 13:43:55 +01:00
Moxie Marlinspike ed45067227 Bumping version to 2.0.2 // FREEBIE 2014-02-26 00:01:52 -08:00
Jake McGinty 0015711759 migrate logcat submit to preferences
// FREEBIE
2014-02-25 23:11:00 -08:00
Moxie Marlinspike 15390e477e Update translations.
// FREEBIE
2014-02-25 22:47:03 -08:00
Jake McGinty a8c23413ba Merge pull request #745 from mcginty/logcat_submit
activity to submit logcat to pastebin
2014-02-25 22:20:34 -08:00
Jake McGinty ce68429a9b activity to submit logcat to pastebin 2014-02-25 22:14:21 -08:00
Jake McGinty 1a9a88a5a1 Merge pull request #744 from backspace/change-sent-link-color
Make outgoing links readable
2014-02-25 21:23:41 -08:00
Moxie Marlinspike 7987362c25 Fix for bug where messages are stuck in pending state after upgrade. 2014-02-25 20:57:18 -08:00
Buck Doyle 5d42110d6c Make outgoing links readable 2014-02-25 22:46:49 -05:00
Moxie Marlinspike dec7fd4c8a Fix for NPE with audio attachments. 2014-02-25 17:54:49 -08:00
Moxie Marlinspike 82df23dd41 Temporarily bring back end session. 2014-02-25 17:38:55 -08:00
Moxie Marlinspike ce710b378f Fix for stalled retries. 2014-02-25 17:15:30 -08:00
Moxie Marlinspike 20fd881613 Display error code from server when already registered elsewhere. 2014-02-25 17:00:31 -08:00
Jake McGinty 5fa429b0d5 Merge pull request #676 from mcginty/emoji_density
Fix emoji density scaling issues
2014-02-25 16:28:43 -08:00
Jake McGinty 630dce04fc handle emoji density scaling more correctly 2014-02-25 16:24:33 -08:00
Moxie Marlinspike 0da1d8818e Merge pull request #729 from funk78/feature/use_getDeviceE164Number
FREEBIE reuse code
2014-02-25 15:15:26 -08:00
droidastic c84285c639 FREEBIE reuse code 2014-02-25 23:56:18 +01:00
Moxie Marlinspike 5a525a2e58 Switch KCS priority to MIN on JB+. Eliminates icon in status bar! 2014-02-25 10:33:11 -08:00
Moxie Marlinspike dda8a214a4 Merge pull request #668 from m0jo/master
Fix missing localozation strings for custom LED blink pattern.
2014-02-25 08:37:38 -08:00
Tim Bücher bd167cbb17 Fix missing localozation strings for custom LED blink pattern. 2014-02-25 11:38:31 +01:00
Jake McGinty a0aaa7d724 Explain why SMS fallback is disabled when it is 2014-02-25 01:23:22 -08:00
Moxie Marlinspike 25e03b3579 Bumping version to 2.0.1 2014-02-24 21:50:33 -08:00
Moxie Marlinspike 52ff4ecfd2 Fix to make emoji work in push groups. 2014-02-24 17:01:28 -08:00
Moxie Marlinspike 43c1576aab Fix for bad database migration. 2014-02-24 17:00:52 -08:00
Jake McGinty 23c607430d fix dark text input on dark background for conversation
// FREEBIE
2014-02-24 16:12:13 -08:00
Jake McGinty 829a92d371 contact selection reactive to dark theme
// FREEBIE
2014-02-24 14:43:38 -08:00
Moxie Marlinspike 559228af5b Fix for bug modifying immutable list. 2014-02-24 14:19:43 -08:00
Moxie Marlinspike e8a0fac05b Fix for identity key mismatch on devices with V1 identities. 2014-02-24 14:19:17 -08:00
Moxie Marlinspike 7bb45d8a91 Bump version to 2.0 2014-02-24 08:58:33 -08:00
Moxie Marlinspike fa0c783c64 Update language translations. 2014-02-24 02:17:15 -08:00
Moxie Marlinspike 377a332789 Tone down logging a bit. 2014-02-24 02:12:41 -08:00
Moxie Marlinspike 2ab8c77748 Correctly update group title. 2014-02-24 00:37:11 -08:00
Moxie Marlinspike d5f0415907 Merge branch 'master' of github.com:WhisperSystems/TextSecure
Conflicts:
	src/org/thoughtcrime/securesms/GroupCreateActivity.java
	src/org/thoughtcrime/securesms/database/GroupDatabase.java
2014-02-24 00:23:40 -08:00
Moxie Marlinspike 5000957b99 Listen for group updates, fix group updates, and Recipient marshing 2014-02-24 00:19:54 -08:00
Jake McGinty fc12f2cf8e disable subtitle for push groups
// FREEBIE
2014-02-23 23:59:13 -08:00
Jake McGinty e3aed66ded avatar was getting nulled with any update, no more "unsetting"
// FREEBIE
2014-02-23 23:35:46 -08:00
Jake McGinty f30304423d lose SD card dependency, fix NPEs
// FREEBIE
2014-02-23 23:35:41 -08:00
Jake McGinty 86b3de2a93 group updates do things
// FREEBIE
2014-02-23 21:18:08 -08:00
Jake McGinty 0ae1004142 Merge pull request #603 from WhisperSystems/idempotent_backgrounds
Fix bug with recycled ListItems.
2014-02-23 17:32:47 -08:00
Moxie Marlinspike da344a0218 Fix bug with recycled ListItems. 2014-02-23 17:11:10 -08:00
Jake McGinty aab34e491e fix bug where sdk < kitkat is unjustly punished 2014-02-23 16:04:09 -08:00
Moxie Marlinspike e80de7de2b Fix bug where adding attachment duplicates recipient count. 2014-02-23 15:58:24 -08:00
Jake McGinty 3dd27ed59a push conversation messages are now blue
// FREEBIE
2014-02-23 15:29:07 -08:00
Moxie Marlinspike ca2eecaedf Add advanced preference for refreshing push directory. 2014-02-23 15:12:40 -08:00
Moxie Marlinspike e188f62d70 Shunt BCC messages directly to MMS transport. 2014-02-23 14:39:07 -08:00
Moxie Marlinspike 8093b14922 Be sure we don't let MMS out if the transport is disabled. 2014-02-23 14:38:41 -08:00
Moxie Marlinspike 636c50b3b8 Fix for creating non-push groups. 2014-02-23 14:38:03 -08:00
Moxie Marlinspike 9298dded15 Only disable inactive *push* group conversations. 2014-02-23 14:37:41 -08:00
Moxie Marlinspike c36b5869fc Tweak create passphrase screen text. 2014-02-23 14:37:05 -08:00
Jake McGinty 46de25d658 conversation lock icon for dark theme
// FREEBIE
2014-02-22 22:22:39 -08:00
Jake McGinty 8794661433 fix "end session" inflation
// FREEBIE
2014-02-22 22:22:39 -08:00
Moxie Marlinspike 056dbd1a4e tweak text
//FREEBIE
2014-02-22 14:42:02 -08:00
Moxie Marlinspike 125a60290f Correctly handle key conflict resolution for incoming push. 2014-02-22 14:22:12 -08:00
Moxie Marlinspike 315cf2d8e4 Eliminate concept of group 'owner'. 2014-02-22 11:29:28 -08:00
Moxie Marlinspike da57a689c1 Fill in some strings.
// FREEBIE
2014-02-22 11:10:30 -08:00
Moxie Marlinspike 9c9866e7ee Add 'leave group' functionality. Includes other bug fixes. 2014-02-22 10:54:43 -08:00
Moxie Marlinspike a6e1d56cde Refactor group messaging protocol.
// FREEBIE
2014-02-21 17:51:52 -08:00
Jake McGinty b855f8a163 fix single contact selection for contacts with multiple phones
// FREEBIE
2014-02-21 17:12:08 -08:00
Jake McGinty 7beab36c6a updates to conversation menu, and updating of group info
// FREEBIE
2014-02-21 11:33:31 -08:00
Jake McGinty 7667264789 add group photo placeholder assets (not currently used)
// FREEBIE
2014-02-20 23:09:28 -08:00
Moxie Marlinspike ccd1691b22 Make 'push' status a type bit on both incoming and outgoing msgs. 2014-02-20 23:00:38 -08:00
Moxie Marlinspike 2026330f8a Remove dead code. 2014-02-20 18:27:43 -08:00
Moxie Marlinspike 3ca25de034 Fix for MMS decoding when no SIM is available. 2014-02-20 17:32:01 -08:00
Moxie Marlinspike ff238a1ce9 Indicate a message was delivered via push in its delivery status. 2014-02-20 16:14:58 -08:00
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.
2014-02-20 14:49:31 -08:00
Moxie Marlinspike c5821f770a Don't prompt for auto-initiate if push registered (or active V2). 2014-02-20 12:55:02 -08:00
Moxie Marlinspike 5b22a7bdcb Create Curve25519 identities in the next release. 2014-02-20 12:46:51 -08:00
Moxie Marlinspike 2a74dc8d82 Update the conversation UI after aborting a V1 session. 2014-02-20 12:06:11 -08:00
Moxie Marlinspike 145e4335fc Only send round-trip key exchanges over SMS. 2014-02-20 12:06:11 -08:00
Moxie Marlinspike 1d4d9663db Fix for NPE 2014-02-20 12:06:11 -08:00
Jake McGinty a0cbbd2d21 confirm session abort handler in ConversationItem
// FREEBIE
2014-02-20 11:42:15 -08:00
Jake McGinty 28b96204a9 make the menu titles a little less incorrect
// FREEBIE
2014-02-19 21:55:40 -08:00
Jake McGinty c647820fb7 new default contact picture
// FREEBIE
2014-02-19 21:54:12 -08:00
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.
2014-02-19 21:07:47 -08:00
Jake McGinty 0cdc6fd87d embrace the darkness, don't open quickcontact for groups
// FREEBIE
2014-02-19 15:01:10 -08:00
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."
2014-02-19 13:50:32 -08:00
Jake McGinty 0688dd0c2c repurpose ImageDivet for avatar, minor lint, fix bitmap decoding
// FREEBIE
2014-02-19 00:01:37 -08:00
Jake McGinty 649f037ed8 apply same fix used on DecryptingPartInputStream to AttachmentCipherInputStream // FREEBIE 2014-02-18 16:42:44 -08:00
Jake McGinty 9d9a0ec218 collection of fixes based on comments/small aesthetic stuff // FREEBIE 2014-02-18 16:42:44 -08:00
Jake McGinty d19ab04bdd gradle wrapper 1.10, android plugin 0.8, android support 19.0.1 //
FREEBIE
2014-02-18 16:42:40 -08:00
Jake McGinty e05bacd8c3 fixing avatar selection when some gallery apps won't return any extras
but still succeed // FREEBIE
2014-02-18 16:42:33 -08:00
Moxie Marlinspike 760c96171d Merge branch 'master' into groups 2014-02-18 13:53:35 -08:00
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.
2014-02-18 12:51:23 -08:00
Jake McGinty abce678cb4 received group messages aren't processed as "meta" group stuff, oops. 2014-02-17 22:20:43 -08:00
Jake McGinty fb75d90edc fix bug where it opened wrong thread for TS group creates 2014-02-17 22:04:08 -08:00
Jake McGinty 25324a45b3 Show something for unnamed groups, allow us to have different default photos for groups vs. individuals 2014-02-17 21:42:30 -08:00
Jake McGinty 877ed8f59c Show TS group titles properly, hide MMS options 2014-02-17 20:25:40 -08:00
Jake McGinty 54b087c458 MMS should open conversation also 2014-02-17 20:19:54 -08:00
Jake McGinty ca51ddac7f re-privatize getRecipientForNumber 2014-02-17 20:19:35 -08:00
Jake McGinty e15ff6193f unbreak group insertion for new installs 2014-02-17 20:10:37 -08:00
Jake McGinty e8251800ab gb icon for new group changed 2014-02-17 18:17:23 -08:00
Jake McGinty 93329df530 avatar selection on gb fixed, disable push groups if not push registered 2014-02-17 17:33:20 -08:00
Jake McGinty 948f888670 group ui task refactor, small bug fixes 2014-02-17 16:36:31 -08:00
Jake McGinty c19ac8ec1e less hacky way of converting ContactData to Recipients 2014-02-17 16:23:29 -08:00
Jake McGinty 04327e9ed7 refresh conversation fragment to new thread when created 2014-02-17 15:48:09 -08:00
Jake McGinty e81526e581 error messaging for group creation issues 2014-02-17 15:48:09 -08:00
Jake McGinty 4f87c1e52e better intent sequence for single contact selection 2014-02-17 15:48:08 -08:00
Jake McGinty 725e943842 fixed date floating in funky location 2014-02-17 15:48:08 -08:00
Moxie Marlinspike 9bb327db42 Handle SMS fallback preferences correctly, and fix directory sync. 2014-02-17 15:31:42 -08:00
Moxie Marlinspike 94b54a6d63 Fix build. 2014-02-17 13:22:37 -08:00
Moxie Marlinspike fe03a22926 Make group creation exceptions more accurate. 2014-02-17 13:19:49 -08:00
Moxie Marlinspike d8e1df9233 Check prekey identity on mismatched devices too. 2014-02-17 12:41:06 -08:00
Moxie Marlinspike 6b5753337c Putting this functionality in the hands of the user was a bad idea. 2014-02-17 12:37:34 -08:00
Moxie Marlinspike 18f3314cd2 Fix for no paradigm. 2014-02-17 11:54:39 -08:00
Moxie Marlinspike b9f4fba98a Handle identity key mismatch on outgoing group messages.
Additionally, make the group creation process asynchronous.
2014-02-17 11:43:37 -08:00
Jake McGinty 5810062b25 group action conversation items, tweaks to single contact selection 2014-02-16 21:09:15 -08:00
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.
2014-02-16 15:23:49 -08:00
Moxie Marlinspike e2989373cd All push groups are 'secure' ConversationActivities. 2014-02-15 18:40:08 -08:00
Moxie Marlinspike 4e703d5a00 Correct retry logic for SMS JB+ and for push groups. 2014-02-15 18:31:25 -08:00
Moxie Marlinspike b79bc4c234 Fix for non-group threading issue. 2014-02-15 11:44:47 -08:00
Moxie Marlinspike a305bb80e6 Correctly display group members 2014-02-15 11:30:20 -08:00
Jake McGinty 8e3aa94a05 group member name tags, group convo iconography, tweaks 2014-02-15 04:21:56 -08:00
Jake McGinty b2fdd74a1c fix error indicator visibility/placement for sent messages 2014-02-14 17:10:05 -08:00
Moxie Marlinspike 7d3a2acb29 Fix build 2014-02-14 16:41:06 -08:00
Jake McGinty 556b0dec1d pretty up the interface/colors a bit. 2014-02-14 16:21:48 -08:00
Jake McGinty 9b41675f8f single contact selection 2014-02-14 16:21:48 -08:00
Moxie Marlinspike 9438973eac Switch to protobuf enums for push signal type. 2014-02-14 16:20:47 -08:00
Moxie Marlinspike 2f98622948 Fix group migration. 2014-02-14 16:18:18 -08:00
Moxie Marlinspike 067799be06 Display group actions and correctly handle group delivery. 2014-02-14 15:59:57 -08:00
Moxie Marlinspike 7c46f3cbf8 Fill in group creation actions 2014-02-13 17:10:20 -08:00
Jake McGinty 41aa53dd66 masterSecret 2014-02-13 12:36:31 -08:00
Jake McGinty b47076cf1b kill wrong finish() for mms creation 2014-02-13 12:18:17 -08:00
Jake McGinty bb4a4d33c9 handlePush and handleMms prototypes 2014-02-13 12:15:26 -08:00
Jake McGinty c5d010c86f Quick progressbar sample for network operations during group create 2014-02-13 11:44:07 -08:00
Jake McGinty fe55ac57d9 strings, strings, strings 2014-02-12 18:12:58 -08:00
Jake McGinty 01a438de09 basic messaging when non-push users are added 2014-02-12 17:17:33 -08:00
Jake McGinty b4a4e629f1 alignment and string work 2014-02-12 12:05:18 -08:00
Jake McGinty 9cd5a67ec5 directory changes to use number instead of token, group ui progress 2014-02-12 11:35:04 -08:00
Moxie Marlinspike fc3411da83 Merge pull request #593 from backspace/patch-1
Link BitHub image to donation page. Fixes #591
2014-02-10 21:57:10 -08:00
Buck Doyle dc85b23a06 Link BitHub image to description page. Fixes #591 2014-02-11 00:50:09 -05:00
Moxie Marlinspike 0af473d880 Merge branch 'groups' of github.com:WhisperSystems/TextSecure into groups 2014-02-03 11:52:27 -08:00
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.
2014-02-02 19:38:06 -08:00
Jake McGinty ed3151bdb5 backward compatible navigation drawer toggle // FREEBIE 2014-02-01 19:40:46 -08:00
Jake McGinty 6157a0df7a Merge pull request #572 from cketti/black_startup_theme
Use black theme without actionbar for RoutingActivity
2014-02-01 18:54:50 -08:00
Jake McGinty 5a75ff9299 Merge pull request #537 from veeti/registration
Registration activity fixes
2014-01-26 01:02:41 -08:00
Jake McGinty 9fd2c4753e ui wip 2014-01-25 23:39:56 -08:00
cketti c8ef21774d Use black theme without actionbar for RoutingActivity
The theme from the manifest is used for the startup animation.
Previously light background with a dark actionbar and the
green icon was displayed during the startup animation, then
the theme switched to whatever is configured in settings.
Now a black background without actionbar is used for the
startup animation. This was chosen because a black "flash" when
using the light theme is visually less distracting than a white
flash when using the dark theme.
2014-01-26 06:26:30 +01:00
Veeti Paananen fc458770ea Reduce margin between registration text 2014-01-20 15:31:09 +02:00
Veeti Paananen 0d2ce2528c Use equal margins in the registration view 2014-01-20 15:13:11 +02:00
Veeti Paananen 6bfae9ebc9 Fix registration activity being cut off on small screens or large fonts 2014-01-20 15:13:11 +02:00
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.
2014-01-18 18:25:51 -08:00
Moxie Marlinspike d51ccb8ce2 Update gradle docs //FREEBIE 2014-01-18 10:44:06 -08:00
Moxie Marlinspike 49daa45dca wip 2014-01-14 00:26:43 -08:00
Moxie Marlinspike 63b90bb57f Merge pull request #541 from mcginty/resource_crunch
pngcrush and removal of unused layout
2014-01-12 12:09:09 -08:00
Jake McGinty 8f7c9d45aa pngcrush and removal of unused layout // FREEBIE 2014-01-11 10:55:52 -10:00
Moxie Marlinspike 4851a555e7 Merge pull request #540 from WhisperSystems/lint
Fixes more lint errors
2014-01-11 10:52:32 -08:00
Ruben Pollan a0dd1689da Use minSdkVersion 9
'Array.copyOfRange' depends on API level 9

// FREEBIE
2014-01-11 08:47:28 -10:00
Moxie Marlinspike 63d217bd80 Merge pull request #539 from WhisperSystems/apndefaults
Add apn settings for some providers
2014-01-11 10:01:17 -08:00
Ruben Pollan 6cdd2aff0d Suppress lint errors 2014-01-11 01:34:11 -10:00
Ruben Pollan 1e77c9904a VerifyKeysActivity don't exists anymore 2014-01-10 21:51:53 -10:00
Ruben Pollan c134709009 Add apn settings for some providers 2014-01-10 21:03:45 -10:00
Moxie Marlinspike 4a93f7d012 Merge pull request #538 from WhisperSystems/lint
Merge Don't fail build if lint gives errors
2014-01-10 20:57:46 -08:00
Ruben Pollan 29cdfd4b96 Fix some translation errors 2014-01-10 16:22:30 -10:00
Ruben Pollan a14897f8b5 Don't fail build if lint gives errors 2014-01-10 16:20:25 -10:00
Moxie Marlinspike 9b6d4e3696 Merge pull request #532 from mcginty/visual_refresh
WBoC Visual Refresh
2014-01-09 21:08:15 -08:00
Jake McGinty 28c1c5006b icon, contact list and conversation redesign 2014-01-09 19:06:41 -10:00
Moxie Marlinspike 8ca60a8746 Merge pull request #536 from bozsco/fix-#487
Merge Automatically show keyboard when new SMS is composed
2014-01-09 14:40:33 -08:00
bozsco e9a8c7474c Automatically show keyboard when new SMS is composed 2014-01-09 16:52:11 -05:00
Moxie Marlinspike 75ce00cb90 Merge pull request #495 from breser/issue469
Merge Fix issue #469: Hide "Clear Passphrase" if passphrase is disabled.
2014-01-07 22:02:23 -08:00
Ben Reser 149671095b Fix issue #469: Hide "Clear Passphrase" if passphrase is disabled. 2014-01-07 21:47:28 -08:00
Moxie Marlinspike c488947248 Merge pull request #453 from irv/master
Merge Fix issue #433
2014-01-07 20:08:53 -08:00
Moxie Marlinspike 04b2c3772a Support skipping password creation at setup 2014-01-07 16:27:00 -08:00
Moxie Marlinspike a4a3b4a453 Update registration strings 2014-01-07 15:16:23 -08:00
Moxie Marlinspike 5c97b1e864 Twiddle the auto initiate 2014-01-06 20:03:16 -08:00
Moxie Marlinspike dde2d2564a Fix rebase errors 2014-01-06 19:49:35 -08:00
Moxie Marlinspike 71664926e9 Better handling for unregistered users on outgoing message. 2014-01-06 14:38:41 -08:00
Moxie Marlinspike 3c3028c8e3 Typo 2014-01-06 14:38:15 -08:00
Moxie Marlinspike 842df1ac39 Remove receiver chains that are 5 old. 2014-01-06 14:38:15 -08:00
Moxie Marlinspike ff0dff745c Let's order 3DHE by Alice/Bob roles. 2014-01-06 14:38:15 -08:00
Moxie Marlinspike d4188c4a1c SHA256 attachment MACs. 2014-01-06 14:38:14 -08:00
Moxie Marlinspike f002072f38 New attachment API 2014-01-06 14:38:14 -08:00
Moxie Marlinspike 72be77b47e Catch bad prekeys 2014-01-06 14:38:14 -08:00
Moxie Marlinspike 327ee4ff62 Remove unnecessary classes, up prekey limit to 100 2014-01-06 14:38:14 -08:00
Moxie Marlinspike 1ab4e7e9de Library accepts push connection certificate as argument. 2014-01-06 14:38:14 -08:00
Moxie Marlinspike ff5ad4b85d Updated copyright 2014-01-06 14:37:52 -08:00
Moxie Marlinspike ce5f3c5157 Validate phone numbers when formatting. 2014-01-06 14:37:52 -08:00
Moxie Marlinspike f7b71e5e28 Add info to MessageKey HKDF, change order of RootKey derivation. 2014-01-06 14:37:52 -08:00
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.
2014-01-06 14:37:52 -08:00
Moxie Marlinspike dc73bc2a5c Having calling code specify push URL to library. 2014-01-06 14:37:52 -08:00
Moxie Marlinspike f8dda5afd6 Missing comma 2014-01-06 14:37:51 -08:00
Moxie Marlinspike 4380b46a35 Correctly update MMS security status. 2014-01-06 14:37:51 -08:00
Moxie Marlinspike 7e926d08ac Better relay handling. 2014-01-06 14:37:51 -08:00
Moxie Marlinspike fde8d32848 Subtle rebase conflicts... 2014-01-06 14:37:51 -08:00
Moxie Marlinspike f10d6a7b0b Lets use strict wildcard matching. 2014-01-06 14:36:23 -08:00
Moxie Marlinspike 320cc84392 Update production endpoint. 2014-01-06 14:36:23 -08:00
Moxie Marlinspike dadabdfaa8 Make UI responsive to UniversalTransport upgrades. 2014-01-06 14:36:23 -08:00
Moxie Marlinspike 07b7696937 Update 'DJB' type not to conlict with NIST type 0x04. 2014-01-06 14:36:23 -08:00
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.
2014-01-06 14:36:22 -08:00
Moxie Marlinspike a03fff8b24 Add HKDF support for new sessions. 2014-01-06 14:36:22 -08:00
Moxie Marlinspike dbc070cd65 Refactor the ciphertext message parsing and building. 2014-01-06 14:36:22 -08:00
Moxie Marlinspike 6e640db39c 204 is ok 2014-01-06 14:36:21 -08:00
Moxie Marlinspike 44d59d0fd1 Correctly store destination SMS state. 2014-01-06 14:36:21 -08:00
Moxie Marlinspike 51b9affe90 Add federation support for attachment retrieval. 2014-01-06 14:36:21 -08:00
Moxie Marlinspike 246cd10454 Bundle e164 and relay into PushDestination 2014-01-06 14:36:21 -08:00
Moxie Marlinspike ca3c82f581 Simply PushServiceSocket constructor. 2014-01-06 14:36:21 -08:00
Moxie Marlinspike 5b2caa0074 Make relay arguments consistent. 2014-01-06 14:36:21 -08:00
Moxie Marlinspike fa073e0b46 Update gradle plugin version 2014-01-06 14:36:21 -08:00
Moxie Marlinspike 7fd9946275 Fix release push service url 2014-01-06 14:35:54 -08:00
Moxie Marlinspike fa5ccc3f8a Support for server federation. 2014-01-06 14:35:54 -08:00
Moxie Marlinspike 25a2ad7289 Add directory refreshing at 24hr intervals. 2014-01-06 14:35:54 -08:00
Moxie Marlinspike e7a21752d8 Switch code API to GET. 2014-01-06 14:35:54 -08:00
Moxie Marlinspike b010c5194a Support publishing AARs to maven local 2014-01-06 14:35:54 -08:00
Moxie Marlinspike eb4cc7f4e5 Add incoming message sources to active token dir. 2014-01-06 14:35:54 -08:00
Moxie Marlinspike 1ac32346c1 Graduate to a rebased and gradle world. 2014-01-06 14:35:54 -08:00
Moxie Marlinspike 2d083208cc Handle negative directory case and unlisted contacts. 2014-01-06 14:35:54 -08:00
Moxie Marlinspike 75cca3add1 Resign ourselves to a less sophisticated contact intersection method. 2014-01-06 14:35:53 -08:00
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.
2014-01-06 14:35:53 -08:00
Moxie Marlinspike 5e6d39beea Move classes into library 2014-01-06 14:35:53 -08:00
Moxie Marlinspike 8f6590b738 Handle notifications and receiving push when locked. 2014-01-06 14:35:53 -08:00
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.
2014-01-06 14:35:53 -08:00
Moxie Marlinspike cddba2738f Make encoding/decoding more explicit. 2014-01-06 14:35:53 -08:00
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).
2014-01-06 14:35:53 -08:00
Moxie Marlinspike 68ec0a3727 Add last resort key and signaling key. 2014-01-06 14:35:53 -08:00
Moxie Marlinspike 45e380a5bb move constants into library 2014-01-06 14:35:52 -08:00
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.
2014-01-06 14:35:52 -08:00
Moxie Marlinspike c3b8b62d32 Delete pre-key record when establishing agreement. 2014-01-06 14:35:52 -08:00
Moxie Marlinspike 43492b66c4 Rename EncryptedMessage 2014-01-06 14:35:52 -08:00
Moxie Marlinspike 90814be167 Fix up release parameters 2014-01-06 14:35:52 -08:00
Moxie Marlinspike 7f642666dd Basic support for prekeybundle message delivery and receipt. 2014-01-06 14:35:52 -08:00
Moxie Marlinspike 1cc2762656 Refactor relationship between SessionCipher and Message. 2014-01-06 14:35:52 -08:00
Moxie Marlinspike d1969412fb Move PreKey ids to be Mediums, generate in circular buffer. 2014-01-06 14:35:51 -08:00
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.
2014-01-06 14:35:51 -08:00
Moxie Marlinspike 499de2d2bf Move prekey jsonifcation into the push code, add identity key. 2014-01-06 14:35:51 -08:00
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.
2014-01-06 14:35:51 -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 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.
2014-01-06 14:34:46 -08:00
Moxie Marlinspike 03ff55db97 Actually set the preference to unregistered 2014-01-06 14:33:53 -08:00
Moxie Marlinspike 0e899b93d4 Reset Release 2014-01-06 14:33:53 -08:00
Moxie Marlinspike fb378a6e00 Change attachment retrieval interface 2014-01-06 14:33:53 -08:00
Moxie Marlinspike 9287d413ac Support for incoming attachments.
1) Refactored MMS layer to use abstracted types.

2) Added support for retrieving attachment IDs.
2014-01-06 14:33:52 -08:00
Moxie Marlinspike 4bb337a3a0 Revised support for outgoing attachments 2014-01-06 14:33:52 -08:00
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.
2014-01-06 14:33:52 -08:00
Moxie Marlinspike 53803630d4 Enable TextSecure universal transport. 2014-01-06 14:33:52 -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 52e5274a2f Add registration notification support. 2014-01-06 14:21:51 -08:00
Moxie Marlinspike 4c615546e8 update gitignore 2014-01-06 14:21:50 -08:00
Moxie Marlinspike 1d1492b15c Remove from VCS 2014-01-06 14:21:50 -08:00
Moxie Marlinspike 0ed9da9a2c Strings and slight cleanup 2014-01-06 14:21:50 -08:00
Moxie Marlinspike 26dadfcb7a Move trust store to raw resource from asset. 2014-01-06 14:21:50 -08:00
Moxie Marlinspike 1ac06312a0 Move directory and push service socket into library. 2014-01-06 14:21:50 -08:00
Moxie Marlinspike a200d29514 Move most of Util into library 2014-01-06 14:21:50 -08:00
Moxie Marlinspike 21eee19380 Split into library project and add shared preferences layer of indirection. 2014-01-06 14:20:59 -08:00
Moxie Marlinspike 2539723410 Fix string 2014-01-06 14:19:06 -08:00
Moxie Marlinspike 0958c30400 Stringify 2014-01-06 14:19:06 -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
Moxie Marlinspike 6ca029f64a Plugin 0.7, Gradle 1.9, AS 4.0 2014-01-06 14:13:12 -08:00
Moxie Marlinspike 7bf96ec7d7 Merge pull request #524 from thoughtbox/master
Merge Allow for "Enable Enter key" translation
2014-01-02 15:35:56 -08:00
thoughtbox 389fdaed32 Enter key string.xml references
To allow for translations
2014-01-02 18:58:54 +01:00
thoughtbox 8186694555 Change to string refs for Enter
To allow for translation
2014-01-02 18:53:50 +01:00
Moxie Marlinspike b98d5ca244 Merge pull request #501 from veeti/notification
Improve password caching notification UI & UX
2014-01-01 13:51:26 -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
Moxie Marlinspike ca92b4d904 Merge pull request #493 from niktrix/patch-1
set unread message count in notifications.
2013-12-18 13:21:10 -08:00
nicky g a0c821f6ac set unread message count in notifications.
was not able to squash commit requesting new pull
2013-12-19 02:44:42 +05:30
Moxie Marlinspike d260cdcc9f Add giffgaff APN defaults. // FREEBIE 2013-12-17 16:57:40 -08:00
Moxie Marlinspike 496d5e21d2 Add Slovenia APN defaults 2013-12-17 16:53:35 -08:00
Moxie Marlinspike bba49fcb76 Merge pull request #446 from veeti/settings
Show LED and ringtone setting values in their summaries
2013-12-16 20:17:54 -08:00
Veeti Paananen 6eb094c87e Show LED and ringtone setting values in their summaries
As instructed in the Android design guidelines. Also removed unnatural
capitalization.
2013-12-17 03:13:22 +02:00
Moxie Marlinspike 23e8035edd Merge pull request #486 from jlund/strings-update
Incredibly minor cleanup of the strings file
2013-12-16 15:02:03 -08:00
Joshua Lund 0fed5593a8 Incredibly minor cleanup of the strings file 2013-12-16 15:11:17 -07:00
Moxie Marlinspike 60f5363da0 Merge pull request #485 from veeti/tabswipe
Add tab swiping to contacts picker
2013-12-16 12:50:41 -08: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
Moxie Marlinspike e7f4a6039c Merge pull request #479 from kyleconroy/new_icon
Add a new icon
2013-12-16 11:05:43 -08:00
Moxie Marlinspike fccb4cc0cf Add bithub payout slug. 2013-12-16 09:58:56 -08:00
Andy Irving 91b52bed18 Don't stick thread IDs in the Intent extra data. Always mark all threads read from notification. 2013-12-14 16:55:24 +00:00
Kyle Conroy f91cfe1c44 Update icon with more distinct drop shadow. Make the lock flat. 2013-12-13 11:33:02 -08:00
Kyle Conroy c8422a8942 Lighten the drop shadow on the icon 2013-12-12 16:54:36 -08:00
Kyle Conroy f74119a58c Add new icons 2013-12-12 16:30:14 -08:00
Moxie Marlinspike ce4f935fa6 Bump version to 1.0.6 2013-12-07 11:47:14 -08:00
Moxie Marlinspike ee0a84ec16 kn_IN 2013-12-07 11:31:08 -08:00
Moxie Marlinspike 7d931f5e6b Updated translations 2013-12-07 11:22:33 -08:00
Moxie Marlinspike 1740f9a7cd Merge pull request #443 from veeti/unlock
Clean up password unlock layout
2013-12-07 11:16:19 -08:00
Moxie Marlinspike 94913f34da Merge pull request #459 from thoughtbox/master
Add summary information to "Sound" setting in preferences.
2013-12-07 11:08:11 -08:00
Moxie Marlinspike 15284cd4d9 Merge pull request #460 from thejeshgn/patch-1
Added Kannada to languages
2013-12-07 11:05:02 -08:00
Moxie Marlinspike 7c2fb74af4 Fix for bug that could drop unencrypted MMS on KitKat. 2013-12-07 11:03:26 -08:00
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.
2013-12-07 11:03:25 -08:00
Thejesh GN ed73bd57a1 Added Kannada to languages 2013-12-05 13:37:43 +05:30
Moxie Marlinspike 99d295abc5 Merge pull request #454 from veeti/highlights
Update card highlight style
2013-12-04 14:19:54 -08:00
thoughtbox b56a4f9740 Update strings.xml to reference Sound summary in Settings. 2013-12-04 22:47:54 +01:00
thoughtbox cc5981594f Add summary to "Sound" preference (1 of 2) 2013-12-04 22:46:30 +01:00
Veeti Paananen 37fb8fe445 Update card highlight style
Out with orange, in with blue and gray (on >= 4.4).
2013-12-04 01:19:53 +02:00
Andy Irving 7f44b029fe use PendingIntent.FLAG_UPDATE_CURRENT in calls to PendingIntent.getActivity() to avoid re-using the same extra data on every intent. 2013-12-03 21:48:16 +00:00
Moxie Marlinspike b2bd19d787 Bumping version to 1.0.5 2013-12-03 08:30:15 -08:00
Moxie Marlinspike c2b809c7c6 Fix for long multipart message bug on some ROMs. 2013-12-03 08:21:31 -08:00
Moxie Marlinspike e0aa7fd359 Let unencrypted messages through. 2013-12-03 08:10:58 -08:00
Moxie Marlinspike 3a5f9748ff Merge pull request #449 from thoughtbox/patch-4
Update strings.xml
2013-12-03 07:56:18 -08:00
thoughtbox 33fd6414b8 Update strings.xml
Removed emoticon from QuickResponse and changed the wording slightly of the "default SMS app" setting.
2013-12-03 11:08:36 +01:00
Moxie Marlinspike ce4b8701fb Merge pull request #445 from veeti/null
Fix crash when no SMS package is set
2013-12-02 23:23:29 -08:00
Veeti Paananen 10580a7f20 Fix crash when no SMS package is set 2013-12-03 09:06:16 +02:00
Moxie Marlinspike d89ef70060 Bump version number to 1.0.4 2013-12-02 21:44:28 -08:00
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.
2013-12-02 21:39:09 -08:00
Moxie Marlinspike 8f7f1ea49c Bump version to 1.0.3 2013-12-02 17:34:07 -08:00
Moxie Marlinspike 0c0db28358 Fix string case 2013-12-02 17:11:16 -08: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
Moxie Marlinspike afa20058b8 Updated langauge translations 2013-12-02 13:09:33 -08:00
Moxie Marlinspike 9dc3730142 Merge pull request #441 from veeti/gradle-version
Update to the latest Android Gradle plugin
2013-12-02 12:57:53 -08:00
Moxie Marlinspike 504ec976c0 Merge pull request #440 from veeti/styles 2013-12-02 12:57:32 -08:00
Moxie Marlinspike fda01796ab Merge pull request #421 from wsot/master
Fix issue #410: DecryptingPartInputStream could return more data than re...
2013-12-02 12:43:23 -08:00
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.
2013-12-02 12:31:59 -08:00
Gabe Conradi e81756f443 Proper SMS support for KitKat. 2013-12-02 08:32:34 -08:00
Veeti Paananen 56fd6e7035 Update to the latest Android Gradle plugin 2013-12-01 01:48:24 +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
Simeon Morgan 4931d7327b Switch to two-space indentation, remove inline comments. 2013-11-14 17:53:38 +11:00
Simeon Morgan adfa3c1b10 Optimised use of buffers when decrypting to avoid unnecessary array copying properly. 2013-11-12 13:37:57 +11:00
Simeon Morgan 3cc6344c8b Optimised use of buffers when decrypting to avoid unnecessary array copying 2013-11-12 13:31:30 +11:00
Simeon Morgan 546dd5485c Fix issue #410: DecryptingPartInputStream could return more data than requested, causing segfaults in BitmapFactory on Android 4.4. 2013-11-12 12:57:47 +11:00
Moxie Marlinspike f9c7687ce2 Bump version to 1.0.2 2013-10-21 10:30:09 -07:00
Moxie Marlinspike b0e0011060 Add URI permissions to fix crash on 4.x environments. 2013-10-21 10:21:48 -07:00
Moxie Marlinspike 9c0db4c259 Bump version to 1.0.1 2013-10-20 19:15:36 -07:00
Moxie Marlinspike 9cf1751c49 Added hebrew and danish to language selector 2013-10-20 19:13:32 -07:00
Moxie Marlinspike 981c9a1543 Updated language translations 2013-10-20 19:13:15 -07:00
Moxie Marlinspike 73bf21602a Move ReceiveKeyActivity back to themed dialog activity. 2013-10-20 19:12:53 -07:00
Moxie Marlinspike 8d8a6ab998 Switch menu contact image to be a menu image. 2013-10-20 17:18:59 -07:00
Moxie Marlinspike 798e3c0656 Merge pull request #384 from meskio/383_batch_selection
Add deselect to batch selection mode
2013-10-20 16:59:41 -07:00
Moxie Marlinspike 891e3aeb97 Merge pull request #381 from meskio/add_contact
New 'add contact info' option on the conversation contextual menu
2013-10-20 16:58:58 -07: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
Ruben Pollan c7b39eca11 Add deselect to batch selection mode 2013-10-20 18:25:01 +02:00
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.
2013-10-17 02:28:36 +02:00
Moxie Marlinspike f3fdde6040 Merge pull request #376 from meskio/extension_saving_attachment
Set the right extension on saving an attachment
2013-10-15 07:35:14 -07:00
Moxie Marlinspike f49c62793b Merge pull request #377 from meskio/resend_message_on_fail2
Allow to resend a failed message
2013-10-15 06:32:12 -07:00
Moxie Marlinspike f27c7c4178 Merge branch 'thoughtbox-patch-1'
Conflicts:
	res/values/strings.xml
2013-10-15 06:28:18 -07:00
Moxie Marlinspike ee6a74cb66 Merge pull request #379 from thoughtbox/patch-3
update to in-thread notification description
2013-10-15 06:26:13 -07:00
thoughtbox cfc255a7b7 update to in-thread notification description
I felt that the description of what "in-thread notification" could be difficult to understand for some. This is better, I think (though I'm not fully satisfied).
2013-10-13 20:08:56 +02:00
thoughtbox 615ca931d4 Update strings.xml
I think it should be "in-thread" rather than "in thread".
2013-10-13 19:47:22 +02:00
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.
2013-10-13 15:39:15 +02:00
Ruben Pollan 73b1e3f3d4 Set the right extension on saving an attachment 2013-10-13 14:45:04 +02:00
Moxie Marlinspike 8d115562f0 Merge branch 'master' of github.com:WhisperSystems/TextSecure 2013-10-13 04:07:45 -07:00
Moxie Marlinspike f26b9070f2 Update PRNG fix code sample.
Google updated their code sample to account for restrictive
SELinux configurations on some devices.
2013-10-13 04:06:58 -07:00
Moxie Marlinspike 2cbc4d3b0a Merge pull request #372 from meskio/key_notification
Upgrade notification KeyCachingService code to use NotificationCompat.Builder
2013-10-12 09:20:48 -07:00
Moxie Marlinspike ee8c8530bf Merge pull request #373 from d3sre/issues-273
Issues 273
2013-10-12 09:17:51 -07:00
Moxie Marlinspike 763e4b1b27 Merge pull request #367 from nikolai-r/master
add option to disable audible inthread notifications
2013-10-12 09:15:54 -07:00
Desiree Sacher 4f49216103 corrected class info of NullPointerException messages 2013-10-12 15:32:45 +02:00
Desiree Sacher ed4c8cd799 extended log of encrypted and plaintext messages NullPointerException 2013-10-12 15:29:03 +02:00
Ruben Pollan 4826dbcc34 Upgrade notification KeyCachingService code to NotificationCompat.Builder 2013-10-12 15:04:16 +02:00
Nikolai Rusakov 2cf7f82f07 closes #367 - add option to disable audible inthread notifications 2013-10-11 22:19:35 +00:00
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.
2013-10-10 13:52:24 -07:00
Shaun Walbridge 91dd558f7a ActionBarSherlock verisons now stored as tags
The current release of `ActionBarSherlock` uses tags to store its relases, so the clone command fails. Instead, clone HEAD and switch to the 4.2.0 tag.
2013-10-10 01:50:02 -07:00
joshua stein 99e3e596bb Correctly preserve MMS image aspect ratios. 2013-10-10 01:43:48 -07:00
rhodey f23fc9b3dd Merge pull request #358 from WhisperSystems/issue353
"Select Ringtone" preference in "Notifications" section of TextSecure settings now reads "Sound" to better reflect the selection of audio presented.
2013-10-01 12:21:39 -07:00
rhodey 1149d8b625 Switched string constant name for notification sound from preferences__select_reingtone to preferences_sound to match the new value of the constant, 'Sound'. 2013-09-30 15:25:50 -07:00
rhodey 282e40db40 Changed language in notification section of settings from 'select ringtone' to 'sound'. 2013-09-30 14:55:55 -07:00
rhodey 27fadf70f0 Merge pull request #320 from svramusi/master
Tested and merged, thanks @svramusi !
2013-09-01 22:10:45 -07:00
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.
2013-08-23 00:05:19 -04:00
Moxie Marlinspike f58f79a459 Bumping version to 1.0 2013-08-16 10:16:13 -07:00
Moxie Marlinspike 124bcf2624 Added bulgarian and greek 2013-08-16 08:38:43 -07:00
Moxie Marlinspike 69bfb20531 Updated language translations 2013-08-16 08:32:14 -07:00
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
2013-08-15 11:27:14 -07:00
Moxie Marlinspike 8ecf972534 Bumping version to 0.9.9.9 2013-08-10 20:29:31 -07:00
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.
2013-08-10 09:09:00 -07:00
Moxie Marlinspike 4722b7f005 bumping version to 0.9.9.8 2013-07-22 16:15:22 -07:00
Moxie Marlinspike af19da3ab2 Added romanian language support 2013-07-22 15:53:52 -07:00
Moxie Marlinspike 4240dc80a1 Updated language translations 2013-07-22 15:52:10 -07:00
Moxie Marlinspike 7bd520cb41 Fix for batch selection bug 2013-07-22 15:30:12 -07:00
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.
2013-07-22 15:04:31 -07:00
Moxie Marlinspike 4281df7a28 display emoji correctly on devices of all densities 2013-07-15 17:33:30 -07:00
Moxie Marlinspike c827f0a2a7 Merge pull request #249 from joeykrim/patch-1
Small clarification in the comments on the types of SMS to ignore
2013-07-14 11:33:23 -07:00
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
2013-07-13 16:41:09 -04:00
Moxie Marlinspike 0ff5056365 Merge pull request #262 from joeykrim/patch-4
Moved Preferences Disabled passphrase title and summary text into strings.xml
2013-07-13 10:58:34 -07:00
Moxie Marlinspike f66710a7ea Merge pull request #260 from joeykrim/patch-2
Changed new Thread() to use new AsyncTask()
2013-07-13 10:55:09 -07:00
joeykrim 10fd757cb4 Changed Disable passphrase summary and title text to reference strings.xml 2013-07-12 23:15:40 -04:00
joeykrim 719d791962 Added Disable Passphrase title and summary strings from Preference.xml 2013-07-12 23:11:27 -04:00
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 - https://github.com/WhisperSystems/TextSecure/commit/d97252d8d66c4927b2acf54c9b3ee290eac5a992
2013-07-12 22:40:14 -04:00
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.
2013-07-12 15:25:34 -07:00
joeykrim 87e8214bae Small clarification in the comments on the types of SMS to ignore 2013-07-08 10:16:25 -04:00
Moxie Marlinspike bccf4895f6 Bumping version to 0.9.9.7 2013-07-02 18:59:17 -07:00
Moxie Marlinspike 184537e691 Updated language translations 2013-07-02 16:50:49 -07:00
Moxie Marlinspike d97252d8d6 Add ability to disable local encryption passphrase. 2013-07-01 10:15:36 -07:00
Moxie Marlinspike 68b82c168e Add in-app language selection support. 2013-06-29 18:03:55 -07:00
Moxie Marlinspike 4977092f7a Add support for soft keyboard 'enter' key. 2013-06-29 15:37:47 -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 71e161c792 Switched to new emoji lookup pattern, added rendering support. 2013-06-28 16:56:30 -07:00
Moxie Marlinspike 2e31cfed11 Basic support for composing emoji 2013-06-27 20:57:27 -07:00
Moxie Marlinspike 2db274080c Bumping version to 0.9.9.6 2013-06-26 09:25:32 -07:00
Moxie Marlinspike 408672b0b8 Fix or invisible delivery status regression with MMS. 2013-06-26 09:19:50 -07:00
1370 changed files with 64464 additions and 31633 deletions
+1
View File
@@ -0,0 +1 @@
*.ai binary
+8 -1
View File
@@ -5,10 +5,17 @@ project.properties
bin/
gen/
.idea/
TextSecure.iml
*.iml
out
tests
lint.xml
local.properties
ant.properties
.DS_Store
build.log
build-log.xml
.gradle
build
signing.properties
library/lib/
library/obj/
+7
View File
@@ -0,0 +1,7 @@
language: android
android:
components:
- platform-tools
- build-tools-19.1.0
- android-19
- extra-android-m2repository
+1 -1
View File
@@ -1,6 +1,6 @@
[main]
host = https://www.transifex.com
lang_map = fr_CA:fr-rCA,pt_BR:pt-rBR,pt_PT:pt,zh_CN:zh-rCN,zh_HK:zh-rHK,zh_TW:zh-rTW,da_DK:da-rDK,de_DE:de,fr_FR:fr,es_ES:es,hu_HU:hu,sv_SE:sv-rSE
lang_map = fr_CA:fr-rCA,pt_BR:pt-rBR,pt_PT:pt,zh_CN:zh-rCN,zh_HK:zh-rHK,zh_TW:zh-rTW,da_DK:da-rDK,de_DE:de,tr_TR:tr,fr_FR:fr,es_ES:es,hu_HU:hu,sv_SE:sv-rSE,bg_BG:bg,el_GR:el,kn_IN:kn-rIN,cs_CZ:cs,sr:sr,he:iw,id:in
[textsecure-official.master]
+202 -94
View File
@@ -1,19 +1,19 @@
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="org.thoughtcrime.securesms"
android:versionCode="51"
android:versionName="0.9.9.5">
<uses-sdk android:minSdkVersion="8" android:targetSdkVersion="16"/>
xmlns:tools="http://schemas.android.com/tools"
package="org.thoughtcrime.securesms"
android:versionCode="112"
android:versionName="2.12.0">
<permission android:name="org.thoughtcrime.securesms.ACCESS_SECRETS"
android:label="Access to TextSecure Secrets"
android:protectionLevel="signature" />
<uses-permission android:name="org.thoughtcrime.securesms.ACCESS_SECRETS"/>
android:protectionLevel="signature" />
<uses-permission android:name="org.thoughtcrime.securesms.ACCESS_SECRETS"/>
<uses-permission android:name="android.permission.READ_PROFILE"/>
<uses-permission android:name="android.permission.WRITE_PROFILE"/>
<uses-permission android:name="android.permission.BROADCAST_WAP_PUSH"/>
<uses-permission android:name="android.permission.BROADCAST_WAP_PUSH"
tools:ignore="ProtectedPermissions"/>
<uses-permission android:name="android.permission.READ_CONTACTS"/>
<uses-permission android:name="android.permission.WRITE_CONTACTS"/>
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
@@ -31,119 +31,150 @@
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_CALL_LOG" />
<uses-permission android:name="android.permission.GET_ACCOUNTS" />
<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="com.google.android.c2dm.permission.RECEIVE" />
<permission android:name="org.thoughtcrime.securesms.permission.C2D_MESSAGE"
android:protectionLevel="signature" />
<uses-permission android:name="org.thoughtcrime.securesms.permission.C2D_MESSAGE" />
<application android:icon="@drawable/icon"
<application android:name=".ApplicationContext"
android:icon="@drawable/icon"
android:label="@string/app_name"
android:theme="@style/TextSecure.LightTheme">
<activity android:name=".RoutingActivity"
android:theme="@style/NoAnimation.Theme.Sherlock.Light.DarkActionBar"
android:launchMode="singleTask"
android:configChanges="touchscreen|keyboard|keyboardHidden|orientation|screenLayout|screenSize">
<meta-data android:name="com.google.android.gms.version"
android:value="@integer/google_play_services_version" />
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
<intent-filter>
<action android:name="android.intent.action.SENDTO"/>
<category android:name="android.intent.category.DEFAULT" />
<data android:scheme="sms" />
<data android:scheme="smsto" />
</intent-filter>
<intent-filter>
<action android:name="android.intent.action.SEND" />
<category android:name="android.intent.category.DEFAULT"/>
<data android:mimeType="audio/*" />
<data android:mimeType="image/*" />
<data android:mimeType="text/*" />
</intent-filter>
</activity>
<activity android:name=".RegistrationProblemsActivity"
android:theme="@style/TextSecure.Light.Dialog"
android:configChanges="touchscreen|keyboard|keyboardHidden|orientation|screenLayout|screenSize"/>
<activity android:name=".CountrySelectionActivity"
android:configChanges="touchscreen|keyboard|keyboardHidden|orientation|screenLayout|screenSize"/>
<activity android:name=".ImportExportActivity"
android:configChanges="touchscreen|keyboard|keyboardHidden|orientation|screenLayout|screenSize"/>
<activity android:name=".PromptApnActivity"
<activity android:name=".PromptMmsActivity"
android:label="Configure MMS Settings"
android:windowSoftInputMode="stateUnchanged"
android:configChanges="touchscreen|keyboard|keyboardHidden|orientation|screenLayout|screenSize"/>
<activity android:name=".ConversationListActivity"
android:label="@string/app_name"
<activity android:name=".DeviceProvisioningActivity"
android:theme="@style/TextSecure.DialogActivity"
android:configChanges="touchscreen|keyboard|keyboardHidden|orientation|screenLayout|screenSize">
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data android:scheme="tsdevice"/>
</intent-filter>
</activity>
<activity android:name=".preferences.MmsPreferencesActivity"
android:configChanges="touchscreen|keyboard|keyboardHidden|orientation|screenLayout|screenSize"/>
<activity android:name=".ShareActivity"
android:excludeFromRecents="true"
android:launchMode="singleTask"
android:uiOptions="splitActionBarWhenNarrow"
android:configChanges="touchscreen|keyboard|keyboardHidden|orientation|screenLayout|screenSize"/>
android:noHistory="true"
android:windowSoftInputMode="stateHidden"
android:configChanges="touchscreen|keyboard|keyboardHidden|orientation|screenLayout|screenSize">
<intent-filter>
<action android:name="android.intent.action.SEND" />
<category android:name="android.intent.category.DEFAULT"/>
<data android:mimeType="audio/*" />
<data android:mimeType="image/*" />
<data android:mimeType="text/plain" />
<data android:mimeType="video/*" />
</intent-filter>
</activity>
<activity android:name=".ConversationListActivity"
android:label="@string/app_name"
android:launchMode="singleTask"
android:configChanges="touchscreen|keyboard|keyboardHidden|orientation|screenLayout|screenSize"
android:exported="true" />
<activity-alias android:name=".RoutingActivity"
android:targetActivity=".ConversationListActivity"
android:exported="true">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity-alias>
<activity android:name=".ConversationActivity"
android:windowSoftInputMode="stateUnchanged"
android:launchMode="singleTask"
android:configChanges="touchscreen|keyboard|keyboardHidden|orientation|screenLayout|screenSize" />
<activity android:name=".MessageDetailsActivity"
android:label="@string/AndroidManifest__message_details"
android:windowSoftInputMode="stateHidden"
android:launchMode="singleTask"
android:configChanges="touchscreen|keyboard|keyboardHidden|orientation|screenLayout|screenSize"/>
<activity android:name=".GroupCreateActivity"
android:windowSoftInputMode="stateVisible"
android:configChanges="touchscreen|keyboard|keyboardHidden|orientation|screenLayout|screenSize"/>
<activity android:name=".DatabaseMigrationActivity"
android:theme="@style/NoAnimation.Theme.Sherlock.Light.DarkActionBar"
android:theme="@style/NoAnimation.Theme.AppCompat.Light.DarkActionBar"
android:launchMode="singleTask"
android:configChanges="touchscreen|keyboard|keyboardHidden|orientation|screenLayout|screenSize"/>
<activity android:name=".DatabaseUpgradeActivity"
android:theme="@style/NoAnimation.Theme.Sherlock.Light.DarkActionBar"
android:theme="@style/NoAnimation.Theme.AppCompat.Light.DarkActionBar"
android:launchMode="singleTask"
android:configChanges="touchscreen|keyboard|keyboardHidden|orientation|screenLayout|screenSize"/>
<activity android:name=".PassphraseCreateActivity"
android:label="@string/AndroidManifest__create_passphrase"
android:windowSoftInputMode="stateUnchanged"
android:theme="@style/NoAnimation.Theme.Sherlock.Light.DarkActionBar"
android:launchMode="singleTop"
android:theme="@style/TextSecure.IntroTheme"
android:launchMode="singleTask"
android:configChanges="touchscreen|keyboard|keyboardHidden|orientation|screenLayout|screenSize"/>
<activity android:name=".PassphrasePromptActivity"
android:label="@string/AndroidManifest__enter_passphrase"
android:launchMode="singleTop"
android:theme="@style/NoAnimation.Theme.Sherlock.Light.DarkActionBar"
android:windowSoftInputMode="stateUnchanged"
android:launchMode="singleTask"
android:theme="@style/TextSecure.IntroTheme"
android:windowSoftInputMode="stateAlwaysVisible"
android:configChanges="touchscreen|keyboard|keyboardHidden|orientation|screenLayout|screenSize"/>
<activity android:name=".ContactSelectionActivity"
<activity android:name=".NewConversationActivity"
android:label="@string/AndroidManifest__select_contacts"
android:windowSoftInputMode="stateVisible"
android:configChanges="touchscreen|keyboard|keyboardHidden|orientation|screenLayout|screenSize"/>
<activity android:name=".AutoInitiateActivity"
android:theme="@style/Theme.Sherlock.Light.Dialog"
android:label="@string/AndroidManifest__textsecure_detected"
android:configChanges="touchscreen|keyboard|keyboardHidden|orientation|screenLayout|screenSize"/>
<activity android:name=".PushContactSelectionActivity"
android:label="@string/AndroidManifest__select_contacts"
android:windowSoftInputMode="stateHidden"
android:configChanges="touchscreen|keyboard|keyboardHidden|orientation|screenLayout|screenSize"/>
<activity android:name=".ViewIdentityActivity"
android:label="@string/AndroidManifest__public_identity_key"
android:configChanges="touchscreen|keyboard|keyboardHidden|orientation|screenLayout|screenSize"/>
<activity android:name=".PassphraseChangeActivity"
android:label="@string/AndroidManifest__change_passphrase"
android:launchMode="singleInstance"
<activity android:name=".ViewLocalIdentityActivity"
android:configChanges="touchscreen|keyboard|keyboardHidden|orientation|screenLayout|screenSize"/>
<activity android:name=".VerifyKeysActivity"
android:label="@string/AndroidManifest__verify_session"
<activity android:name=".PassphraseChangeActivity"
android:label="@string/AndroidManifest__change_passphrase"
android:configChanges="touchscreen|keyboard|keyboardHidden|orientation|screenLayout|screenSize"/>
<activity android:name=".VerifyIdentityActivity"
android:label="@string/AndroidManifest__verify_identity"
android:configChanges="touchscreen|keyboard|keyboardHidden|orientation|screenLayout|screenSize"/>
<activity android:name=".ReviewIdentitiesActivity"
android:label="@string/AndroidManifest__manage_identity_keys"
android:configChanges="touchscreen|keyboard|keyboardHidden|orientation|screenLayout|screenSize"/>
<activity android:name=".ReceiveKeyActivity"
android:theme="@style/Theme.Sherlock.Light.Dialog"
android:label="@string/AndroidManifest__complete_key_exchange"
<activity android:name=".ReceiveKeyActivity"
android:theme="@style/TextSecure.Light.Dialog"
android:configChanges="touchscreen|keyboard|keyboardHidden|orientation|screenLayout|screenSize"/>
<activity android:name=".ApplicationPreferencesActivity"
@@ -156,72 +187,149 @@
<activity android:name=".RegistrationProgressActivity"
android:configChanges="touchscreen|keyboard|keyboardHidden|orientation|screenLayout|screenSize"/>
<activity android:name=".LogSubmitActivity"
android:label="@string/AndroidManifest__log_submit"
android:windowSoftInputMode="stateHidden"
android:configChanges="touchscreen|keyboard|keyboardHidden|orientation|screenLayout|screenSize"/>
<activity android:name=".MediaPreviewActivity"
android:label="@string/AndroidManifest__media_preview"
android:windowSoftInputMode="stateHidden"
android:launchMode="singleTask"
android:configChanges="touchscreen|keyboard|keyboardHidden|orientation|screenLayout|screenSize"/>
<activity android:name=".MediaOverviewActivity"
android:windowSoftInputMode="stateHidden"
android:configChanges="touchscreen|keyboard|keyboardHidden|orientation|screenLayout|screenSize"/>
<activity android:name=".DummyActivity"
android:theme="@android:style/Theme.NoDisplay"
android:enabled="true"
android:allowTaskReparenting="true"
android:noHistory="true"
android:excludeFromRecents="true"
android:alwaysRetainTaskState="false"
android:stateNotNeeded="true"
android:clearTaskOnLaunch="true"
android:finishOnTaskLaunch="true" />
<activity android:name=".PlayServicesProblemActivity"
android:theme="@android:style/Theme.Translucent.NoTitleBar"
android:configChanges="touchscreen|keyboard|keyboardHidden|orientation|screenLayout|screenSize"/>
<activity android:name=".SmsSendtoActivity">
<intent-filter>
<action android:name="android.intent.action.SENDTO" />
<category android:name="android.intent.category.DEFAULT" />
<data android:scheme="sms" />
<data android:scheme="smsto" />
<data android:scheme="mms" />
<data android:scheme="mmsto" />
</intent-filter>
</activity>
<activity android:name="com.soundcloud.android.crop.CropImageActivity" />
<service android:enabled="true" android:name=".service.ApplicationMigrationService"/>
<service android:enabled="true" android:name=".service.KeyCachingService"/>
<service android:enabled="true" android:name=".service.SendReceiveService"/>
<service android:enabled="true" android:name=".service.RegistrationService"/>
<service android:enabled="true" android:name=".gcm.GcmIntentService"/>
<service android:enabled="true" android:name=".service.MessageRetrievalService"/>
<service android:name=".service.QuickResponseService"
android:permission="android.permission.SEND_RESPOND_VIA_MESSAGE"
android:exported="true" >
<intent-filter>
<action android:name="android.intent.action.RESPOND_VIA_MESSAGE" />
<category android:name="android.intent.category.DEFAULT" />
<data android:scheme="sms" />
<data android:scheme="smsto" />
<data android:scheme="mms" />
<data android:scheme="mmsto" />
</intent-filter>
</service>
<!-- <receiver android:name=".service.BootListener" -->
<!-- android:enabled="true" -->
<!-- android:exported="false">-->
<!-- <intent-filter>-->
<!-- <action android:name="android.intent.action.BOOT_COMPLETED" />-->
<!-- </intent-filter>-->
<!-- </receiver>-->
<receiver android:name=".gcm.GcmBroadcastReceiver" android:permission="com.google.android.c2dm.permission.SEND" >
<intent-filter>
<action android:name="com.google.android.c2dm.intent.RECEIVE" />
<action android:name="com.google.android.c2dm.intent.REGISTRATION" />
<category android:name="org.thoughtcrime.securesms" />
</intent-filter>
</receiver>
<receiver android:name=".service.SmsListener"
android:permission="android.permission.BROADCAST_SMS"
android:enabled="true"
android:exported="true">
<intent-filter android:priority="1001">
<action android:name="android.provider.Telephony.SMS_RECEIVED"></action>
<action android:name="android.provider.Telephony.SMS_RECEIVED"/>
</intent-filter>
<intent-filter>
<action android:name="org.thoughtcrime.securesms.services.MESSAGE_SENT"></action>
<action android:name="android.provider.Telephony.SMS_DELIVER"/>
</intent-filter>
</receiver>
<receiver android:name=".service.SmsDeliveryListener"
android:exported="true">
<intent-filter>
<action android:name="org.thoughtcrime.securesms.services.MESSAGE_SENT"/>
</intent-filter>
</receiver>
<receiver android:name=".service.MmsListener"
android:enabled="true"
android:exported="true"
android:permission="android.permission.BROADCAST_WAP_PUSH">
<intent-filter android:priority="1001">
<action android:name="android.provider.Telephony.WAP_PUSH_RECEIVED"></action>
<action android:name="android.provider.Telephony.WAP_PUSH_RECEIVED"/>
<data android:mimeType="application/vnd.wap.mms-message" />
</intent-filter>
<intent-filter>
<action android:name="android.provider.Telephony.WAP_PUSH_DELIVER"/>
<data android:mimeType="application/vnd.wap.mms-message" />
</intent-filter>
</receiver>
<receiver android:name=".service.SystemStateListener"
android:enabled="true"
android:exported="true">
<intent-filter>
<action android:name="android.net.conn.CONNECTIVITY_CHANGE"></action>
</intent-filter>
</receiver>
<receiver android:name=".notifications.MarkReadReceiver"
android:enabled="true"
android:exported="true">
<intent-filter>
<action android:name="org.thoughtcrime.securesms.notifications.CLEAR"></action>
<action android:name="org.thoughtcrime.securesms.notifications.CLEAR"/>
</intent-filter>
</receiver>
<provider android:name=".providers.PartProvider"
<provider android:name=".providers.PartProvider"
android:grantUriPermissions="true"
android:authorities="org.thoughtcrime.provider.securesms" />
<uses-library android:name="android.test.runner" />
<provider android:name=".providers.MmsBodyProvider"
android:grantUriPermissions="true"
android:authorities="org.thoughtcrime.provider.securesms.mms" />
<receiver android:name=".service.RegistrationNotifier"
android:exported="false">
<intent-filter>
<action android:name="org.thoughtcrime.securesms.REGISTRATION_EVENT" />
</intent-filter>
</receiver>
<receiver android:name=".service.DirectoryRefreshListener">
<intent-filter>
<action android:name="org.whispersystems.whisperpush.DIRECTORY_REFRESH"/>
<action android:name="android.intent.action.BOOT_COMPLETED" />
</intent-filter>
</receiver>
<receiver android:name=".notifications.MessageNotifier$ReminderReceiver">
<intent-filter>
<action android:name="org.thoughtcrime.securesms.MessageNotifier.REMINDER_ACTION"/>
</intent-filter>
</receiver>
<receiver android:name=".notifications.MessageNotifier$DeleteReceiver">
<intent-filter>
<action android:name="org.thoughtcrime.securesms.MessageNotifier.DELETE_REMINDER_ACTION"/>
</intent-filter>
</receiver>
</application>
<instrumentation android:name="android.test.InstrumentationTestRunner"
android:targetPackage="org.thoughtcrime.securesms.tests" android:label="Tests for My App" />
</manifest>
+58 -11
View File
@@ -1,22 +1,69 @@
Building TextSecure
===================
=====================
Fetch ActionBarSherlock:
Basics
------
git clone --branch 4.2.0 git://github.com/JakeWharton/ActionBarSherlock.git ../ActionBarSherlock
TextSecure uses [Gradle](http://gradle.org) to build the project and to maintain
dependencies.
Configure ActionBarSherlock for your android target:
Building TextSecure
-------------------
android update project --path ../ActionBarSherlock/library --target 1
The following steps should help you (re)build TextSecure from the command line.
Configure TextSecure for your android target, linking to ASB:
1. Checkout the source somewhere on your filesystem with
android update project --path . --target 1 --library ../ActionBarSherlock/library
git clone https://github.com/WhisperSystems/TextSecure.git
Finally, both codebases must share the android-support jar. As TextSecure's is newer, use it:
2. Make sure you have the [Android SDK](https://developer.android.com/sdk/index.html) installed somewhere on your system.
3. Ensure that the following packages are installed from the Android SDK manager:
* Android SDK Build Tools
* SDK Platform
* Android Support Repository
* Google Repository
4. Create a local.properties file at the root of your source checkout and add an sdk.dir entry to it.
cp libs/android-support-v4.jar ../ActionBarSherlock/library/libs/android-support-v4.jar
sdk.dir=\<path to your sdk installation\>
Assuming your android toolchain is correctly configured, it should now be possible to build the TextSecure apk.
5. Execute Gradle:
ant debug
./gradlew build
Visual assets
----------------------
Source assets tend to be large binary blobs, which are best stored outside of git repositories. We host ours in a [Pixelapse repository](https://www.pixelapse.com/openwhispersystems/projects/signal-android/). Some source files are SVGs that can be auto-colored and sized using a tool like [android-res-utils](https://github.com/sebkur/android-res-utils).
Sample command for generating our audio placeholder image:
```bash
pngs_from_svg.py ic_audio.svg /path/to/TextSecure/res/ 150 "#000" 0.54 _light
pngs_from_svg.py ic_audio.svg /path/to/TextSecure/res/ 150 "#fff" 1.0 _dark
```
Setting up a development environment
------------------------------------
[Android Studio](https://developer.android.com/sdk/installing/studio.html) is the recommended development environment.
1. Install Android Studio.
2. Make sure the "Android Support Repository" is installed in the Android Studio SDK.
3. Make sure the latest "Android SDK build-tools" is installed in the Android Studio SDK.
4. Create a new Android Studio project. from the Quickstart pannel (use File > Close Project to see it), choose "Checkout from Version Control" then "git".
5. Paste the URL for the TextSecure project when prompted (https://github.com/WhisperSystems/TextSecure.git).
6. Android studio should detect the presence of a project file and ask you whether to open it. Click "yes".
7. Default config options should be good enough.
8. Project initialisation and build should proceed.
Contributing code
-----------------
Code contributions should be sent via github as pull requests, from feature branches [as explained here](https://help.github.com/articles/using-pull-requests).
Mailing list
------------
Development discussion happens on the whispersystems mailing list.
[To join](https://lists.riseup.net/www/info/whispersystems)
Send emails to whispersystems@lists.riseup.net
+49 -31
View File
@@ -1,64 +1,82 @@
TextSecure
=================
# TextSecure [![Build Status](https://travis-ci.org/WhisperSystems/TextSecure.svg?branch=master)](https://travis-ci.org/WhisperSystems/TextSecure)
A secure text messaging application for Android.
TextSecure is a messaging app for simple private communication with friends.
TextSecure is a replacement for the standard text messaging application, allowing you to send and receive text messages as normal. Additionally, TextSecure provides:
TextSecure uses your phone's data connection (WiFi/3G/4G) to communicate securely, optionally supports plain SMS/MMS to function as a unified messenger, and can also encrypt the stored messages on your phone.
1. *Local Encryption* -- All text messages, regardless of destination, that are sent or received with TextSecure are stored in an encrypted database on your phone.
2. *Wire Encryption* -- When communicating with a recipient who is also using TextSecure, text messages are encrypted during transmission.
Currently available on the Play store.
Bug tracker
-----------
*[![Play Store Badge](https://developer.android.com/images/brand/en_app_rgb_wo_60.png)](https://play.google.com/store/apps/details?id=org.thoughtcrime.securesms)*
Have a bug? Please create an issue here on GitHub!
## Contributing Bug reports
We use GitHub for bug tracking. Please search the existing issues for your bug and create a new one if the issue is not yet tracked!
https://github.com/WhisperSystems/TextSecure/issues
## Joining the Beta
Want to live life on the bleeding edge and help out with testing?
Documentation
-------------
You can subscribe to TextSecure Beta releases in two steps:
1. Join the [TextSecure Beta Google+ Community](https://plus.google.com/communities/114424213916773497091).
1. After you've joined the community, [subscribe to the beta](https://play.google.com/apps/testing/org.thoughtcrime.securesms).
Looking for documentation? Check out the wiki!
If you're interested in a life of peace and tranquility, stick with the standard releases.
https://github.com/WhisperSystems/TextSecure/wiki
## Contributing Translations
Interested in helping to translate TextSecure? Contribute here:
Mailing list
------------
https://www.transifex.com/projects/p/textsecure-official/
Have a question? Ask on our mailing list!
## Contributing Code
Instructions on how to setup your development environment and build TextSecure can be found in [BUILDING.md](https://github.com/WhisperSystems/TextSecure/blob/master/BUILDING.md).
If you're new to the TextSecure codebase, we recommend going through our issues and picking out a simple bug to fix (check the "easy" label in our issues) in order to get yourself familiar.
For larger changes and feature ideas, we ask that you propose it on the mailing list for a high-level discussion before implementation.
This repository is set up with [BitHub](https://whispersystems.org/blog/bithub/), so you can make money for committing to TextSecure. The current BitHub price for an accepted pull request is:
[![Current BitHub Price](https://bithub.herokuapp.com/v1/status/payment/commit/)](https://whispersystems.org/blog/bithub/)
## Contributing Ideas
Have something you want to say about Open Whisper Systems projects or want to be part of the conversation? Get involved in the mailing list!
whispersystems@lists.riseup.net
https://lists.riseup.net/www/info/whispersystems
Translation
------------
## Contributing Funds
[![Donate](https://www.coinbase.com/assets/buttons/donation_large-36ee936185fdf9a88e3a28cc685fb9b7.png)](https://coinbase.com/checkouts/d29fd4c37ca442393e32fdcb95304701)
Interested in helping to translate TextSecure? Contribute here:
You can add funds to BitHub to directly help further development efforts.
https://www.transifex.com/projects/p/textsecure-official/
Help
====
## Support
For troubleshooting and questions, please visit our support center!
Downloads
------------
http://support.whispersystems.org/
TextSecure can be downloaded from the Play Store here:
## Documentation
Looking for documentation? Check out the wiki!
https://play.google.com/store/apps/details?id=org.thoughtcrime.securesms
https://github.com/WhisperSystems/TextSecure/wiki
Cryptography Notice
------------
# Legal things
## Cryptography Notice
This distribution includes cryptographic software. The country in which you currently reside may have restrictions on the import, possession, use, and/or re-export to another country, of encryption software.
BEFORE using any encryption software, please check your country's laws, regulations and policies concerning the import, possession, or use, and re-export of encryption software, to see if this is permitted.
This distribution includes cryptographic software. The country in which you currently reside may have restrictions on the import, possession, use, and/or re-export to another country, of encryption software.
BEFORE using any encryption software, please check your country's laws, regulations and policies concerning the import, possession, or use, and re-export of encryption software, to see if this is permitted.
See <http://www.wassenaar.org/> for more information.
The U.S. Government Department of Commerce, Bureau of Industry and Security (BIS), has classified this software as Export Commodity Control Number (ECCN) 5D002.C.1, which includes information security software using or performing cryptographic functions with asymmetric algorithms.
The U.S. Government Department of Commerce, Bureau of Industry and Security (BIS), has classified this software as Export Commodity Control Number (ECCN) 5D002.C.1, which includes information security software using or performing cryptographic functions with asymmetric algorithms.
The form and manner of this distribution makes it eligible for export under the License Exception ENC Technology Software Unrestricted (TSU) exception (see the BIS Export Administration Regulations, Section 740.13) for both object code and source code.
License
---------------------
## License
Copyright 2011 Whisper Systems
Copyright 2013-2014 Open Whisper Systems
Licensed under the GPLv3: http://www.gnu.org/licenses/gpl-3.0.html
@@ -0,0 +1,16 @@
package org.thoughtcrime.securesms;
import android.content.Context;
import android.test.InstrumentationTestCase;
public class TextSecureTestCase extends InstrumentationTestCase {
@Override
public void setUp() throws Exception {
System.setProperty("dexmaker.dexcache", getInstrumentation().getTargetContext().getCacheDir().getPath());
}
protected Context getContext() {
return getInstrumentation().getContext();
}
}
@@ -0,0 +1,118 @@
package org.thoughtcrime.securesms.database;
import org.thoughtcrime.securesms.TextSecureTestCase;
import static org.assertj.core.api.Assertions.assertThat;
public class CanonicalAddressDatabaseTest extends TextSecureTestCase {
private static final String AMBIGUOUS_NUMBER = "222-3333";
private static final String SPECIFIC_NUMBER = "+49 444 222 3333";
private static final String EMAIL = "a@b.fom";
private static final String SIMILAR_EMAIL = "a@b.com";
private static final String GROUP = "__textsecure_group__!000111222333";
private static final String SIMILAR_GROUP = "__textsecure_group__!100111222333";
private static final String ALPHA = "T-Mobile";
private static final String SIMILAR_ALPHA = "T-Mobila";
private CanonicalAddressDatabase db;
public void setUp() throws Exception {
super.setUp();
this.db = CanonicalAddressDatabase.getInstance(getInstrumentation().getTargetContext());
}
public void tearDown() throws Exception {
}
/**
* Throw two equivalent numbers (one without locale info, one with full info) at the canonical
* address db and see that the caching and DB operations work properly in revealing the right
* addresses. This is run twice to ensure cache logic is hit.
*
* @throws Exception
*/
public void testNumberAddressUpdates() throws Exception {
final long id = db.getCanonicalAddressId(AMBIGUOUS_NUMBER);
assertThat(db.getAddressFromId(id)).isEqualTo(AMBIGUOUS_NUMBER);
assertThat(db.getCanonicalAddressId(SPECIFIC_NUMBER)).isEqualTo(id);
assertThat(db.getAddressFromId(id)).isEqualTo(SPECIFIC_NUMBER);
assertThat(db.getCanonicalAddressId(AMBIGUOUS_NUMBER)).isEqualTo(id);
assertThat(db.getCanonicalAddressId(AMBIGUOUS_NUMBER)).isEqualTo(id);
assertThat(db.getAddressFromId(id)).isEqualTo(AMBIGUOUS_NUMBER);
assertThat(db.getCanonicalAddressId(SPECIFIC_NUMBER)).isEqualTo(id);
assertThat(db.getAddressFromId(id)).isEqualTo(SPECIFIC_NUMBER);
assertThat(db.getCanonicalAddressId(AMBIGUOUS_NUMBER)).isEqualTo(id);
}
public void testSimilarNumbers() throws Exception {
assertThat(db.getCanonicalAddressId("This is a phone number 222-333-444"))
.isNotEqualTo(db.getCanonicalAddressId("222-333-4444"));
assertThat(db.getCanonicalAddressId("222-333-444"))
.isNotEqualTo(db.getCanonicalAddressId("222-333-4444"));
assertThat(db.getCanonicalAddressId("222-333-44"))
.isNotEqualTo(db.getCanonicalAddressId("222-333-4444"));
assertThat(db.getCanonicalAddressId("222-333-4"))
.isNotEqualTo(db.getCanonicalAddressId("222-333-4444"));
assertThat(db.getCanonicalAddressId("+49 222-333-4444"))
.isNotEqualTo(db.getCanonicalAddressId("+1 222-333-4444"));
assertThat(db.getCanonicalAddressId("1 222-333-4444"))
.isEqualTo(db.getCanonicalAddressId("222-333-4444"));
assertThat(db.getCanonicalAddressId("1 (222) 333-4444"))
.isEqualTo(db.getCanonicalAddressId("222-333-4444"));
assertThat(db.getCanonicalAddressId("+12223334444"))
.isEqualTo(db.getCanonicalAddressId("222-333-4444"));
assertThat(db.getCanonicalAddressId("+1 (222) 333.4444"))
.isEqualTo(db.getCanonicalAddressId("222-333-4444"));
assertThat(db.getCanonicalAddressId("+49 (222) 333.4444"))
.isEqualTo(db.getCanonicalAddressId("222-333-4444"));
}
public void testEmailAddresses() throws Exception {
final long emailId = db.getCanonicalAddressId(EMAIL);
final long similarEmailId = db.getCanonicalAddressId(SIMILAR_EMAIL);
assertThat(emailId).isNotEqualTo(similarEmailId);
assertThat(db.getAddressFromId(emailId)).isEqualTo(EMAIL);
assertThat(db.getAddressFromId(similarEmailId)).isEqualTo(SIMILAR_EMAIL);
}
public void testGroups() throws Exception {
final long groupId = db.getCanonicalAddressId(GROUP);
final long similarGroupId = db.getCanonicalAddressId(SIMILAR_GROUP);
assertThat(groupId).isNotEqualTo(similarGroupId);
assertThat(db.getAddressFromId(groupId)).isEqualTo(GROUP);
assertThat(db.getAddressFromId(similarGroupId)).isEqualTo(SIMILAR_GROUP);
}
public void testAlpha() throws Exception {
final long id = db.getCanonicalAddressId(ALPHA);
final long similarId = db.getCanonicalAddressId(SIMILAR_ALPHA);
assertThat(id).isNotEqualTo(similarId);
assertThat(db.getAddressFromId(id)).isEqualTo(ALPHA);
assertThat(db.getAddressFromId(similarId)).isEqualTo(SIMILAR_ALPHA);
}
public void testIsNumber() throws Exception {
assertThat(CanonicalAddressDatabase.isNumberAddress("+495556666777")).isTrue();
assertThat(CanonicalAddressDatabase.isNumberAddress("(222) 333-4444")).isTrue();
assertThat(CanonicalAddressDatabase.isNumberAddress("1 (222) 333-4444")).isTrue();
assertThat(CanonicalAddressDatabase.isNumberAddress("T-Mobile123")).isTrue();
assertThat(CanonicalAddressDatabase.isNumberAddress("333-4444")).isTrue();
assertThat(CanonicalAddressDatabase.isNumberAddress("12345")).isTrue();
assertThat(CanonicalAddressDatabase.isNumberAddress("T-Mobile")).isFalse();
assertThat(CanonicalAddressDatabase.isNumberAddress("T-Mobile1")).isFalse();
assertThat(CanonicalAddressDatabase.isNumberAddress("Wherever bank")).isFalse();
assertThat(CanonicalAddressDatabase.isNumberAddress("__textsecure_group__!afafafafafaf")).isFalse();
assertThat(CanonicalAddressDatabase.isNumberAddress("email@domain.com")).isFalse();
}
}
@@ -0,0 +1,63 @@
package org.thoughtcrime.securesms.database;
import android.net.Uri;
import org.thoughtcrime.securesms.TextSecureTestCase;
import org.thoughtcrime.securesms.crypto.MasterSecret;
import java.io.FileNotFoundException;
import java.io.InputStream;
import ws.com.google.android.mms.pdu.PduPart;
import static org.mockito.Matchers.any;
import static org.mockito.Matchers.anyFloat;
import static org.mockito.Matchers.anyLong;
import static org.mockito.Matchers.eq;
import static org.mockito.Mockito.doNothing;
import static org.mockito.Mockito.doReturn;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.never;
import static org.mockito.Mockito.spy;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
public class PartDatabaseTest extends TextSecureTestCase {
private static final long PART_ID = 1L;
private PartDatabase database;
@Override
public void setUp() {
database = spy(DatabaseFactory.getPartDatabase(getInstrumentation().getTargetContext()));
}
public void testTaskNotRunWhenThumbnailExists() throws Exception {
when(database.getPart(eq(PART_ID))).thenReturn(getPduPartSkeleton("x/x"));
doReturn(mock(InputStream.class)).when(database).getDataStream(any(MasterSecret.class), anyLong(), eq("thumbnail"));
database.getThumbnailStream(null, PART_ID);
verify(database, never()).updatePartThumbnail(any(MasterSecret.class), anyLong(), any(PduPart.class), any(InputStream.class), anyFloat());
}
public void testTaskRunWhenThumbnailMissing() throws Exception {
when(database.getPart(eq(PART_ID))).thenReturn(getPduPartSkeleton("image/png"));
doReturn(null).when(database).getDataStream(any(MasterSecret.class), anyLong(), eq("thumbnail"));
doNothing().when(database).updatePartThumbnail(any(MasterSecret.class), anyLong(), any(PduPart.class), any(InputStream.class), anyFloat());
try {
database.new ThumbnailFetchCallable(mock(MasterSecret.class), PART_ID).call();
throw new AssertionError("didn't try to generate thumbnail");
} catch (FileNotFoundException fnfe) {
// success
}
}
private PduPart getPduPartSkeleton(String contentType) {
PduPart part = new PduPart();
part.setContentType(contentType.getBytes());
part.setDataUri(Uri.EMPTY);
return part;
}
}
@@ -0,0 +1,154 @@
package org.thoughtcrime.securesms.jobs;
import android.test.AndroidTestCase;
import org.thoughtcrime.securesms.TextSecureTestCase;
import org.thoughtcrime.securesms.crypto.MasterSecret;
import org.thoughtcrime.securesms.dependencies.AxolotlStorageModule;
import org.whispersystems.libaxolotl.ecc.Curve;
import org.whispersystems.libaxolotl.state.SignedPreKeyRecord;
import org.whispersystems.libaxolotl.state.SignedPreKeyStore;
import org.whispersystems.textsecure.api.TextSecureAccountManager;
import org.whispersystems.textsecure.api.push.SignedPreKeyEntity;
import org.whispersystems.textsecure.api.push.exceptions.PushNetworkException;
import java.io.IOException;
import java.util.LinkedList;
import java.util.List;
import dagger.Module;
import dagger.ObjectGraph;
import dagger.Provides;
import static org.mockito.Matchers.anyInt;
import static org.mockito.Matchers.eq;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.never;
import static org.mockito.Mockito.times;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.verifyNoMoreInteractions;
import static org.mockito.Mockito.when;
public class CleanPreKeysJobTest extends TextSecureTestCase {
public void testSignedPreKeyRotationNotRegistered() throws IOException, MasterSecretJob.RequirementNotMetException {
TextSecureAccountManager accountManager = mock(TextSecureAccountManager.class);
SignedPreKeyStore signedPreKeyStore = mock(SignedPreKeyStore.class);
MasterSecret masterSecret = mock(MasterSecret.class);
when(accountManager.getSignedPreKey()).thenReturn(null);
CleanPreKeysJob cleanPreKeysJob = new CleanPreKeysJob(getContext());
ObjectGraph objectGraph = ObjectGraph.create(new TestModule(accountManager, signedPreKeyStore));
objectGraph.inject(cleanPreKeysJob);
cleanPreKeysJob.onRun(masterSecret);
verify(accountManager).getSignedPreKey();
verifyNoMoreInteractions(signedPreKeyStore);
}
public void testSignedPreKeyEviction() throws Exception {
SignedPreKeyStore signedPreKeyStore = mock(SignedPreKeyStore.class);
TextSecureAccountManager accountManager = mock(TextSecureAccountManager.class);
SignedPreKeyEntity currentSignedPreKeyEntity = mock(SignedPreKeyEntity.class);
MasterSecret masterSecret = mock(MasterSecret.class);
when(currentSignedPreKeyEntity.getKeyId()).thenReturn(3133);
when(accountManager.getSignedPreKey()).thenReturn(currentSignedPreKeyEntity);
final SignedPreKeyRecord currentRecord = new SignedPreKeyRecord(3133, System.currentTimeMillis(), Curve.generateKeyPair(), new byte[64]);
List<SignedPreKeyRecord> records = new LinkedList<SignedPreKeyRecord>() {{
add(new SignedPreKeyRecord(2, 11, Curve.generateKeyPair(), new byte[32]));
add(new SignedPreKeyRecord(4, System.currentTimeMillis() - 100, Curve.generateKeyPair(), new byte[64]));
add(currentRecord);
add(new SignedPreKeyRecord(3, System.currentTimeMillis() - 90, Curve.generateKeyPair(), new byte[64]));
add(new SignedPreKeyRecord(1, 10, Curve.generateKeyPair(), new byte[32]));
}};
when(signedPreKeyStore.loadSignedPreKeys()).thenReturn(records);
when(signedPreKeyStore.loadSignedPreKey(eq(3133))).thenReturn(currentRecord);
CleanPreKeysJob cleanPreKeysJob = new CleanPreKeysJob(getContext());
ObjectGraph objectGraph = ObjectGraph.create(new TestModule(accountManager, signedPreKeyStore));
objectGraph.inject(cleanPreKeysJob);
cleanPreKeysJob.onRun(masterSecret);
verify(signedPreKeyStore).removeSignedPreKey(eq(1));
verify(signedPreKeyStore, times(1)).removeSignedPreKey(anyInt());
}
public void testSignedPreKeyNoEviction() throws Exception {
SignedPreKeyStore signedPreKeyStore = mock(SignedPreKeyStore.class);
TextSecureAccountManager accountManager = mock(TextSecureAccountManager.class);
SignedPreKeyEntity currentSignedPreKeyEntity = mock(SignedPreKeyEntity.class);
when(currentSignedPreKeyEntity.getKeyId()).thenReturn(3133);
when(accountManager.getSignedPreKey()).thenReturn(currentSignedPreKeyEntity);
final SignedPreKeyRecord currentRecord = new SignedPreKeyRecord(3133, System.currentTimeMillis(), Curve.generateKeyPair(), new byte[64]);
List<SignedPreKeyRecord> records = new LinkedList<SignedPreKeyRecord>() {{
add(currentRecord);
}};
when(signedPreKeyStore.loadSignedPreKeys()).thenReturn(records);
when(signedPreKeyStore.loadSignedPreKey(eq(3133))).thenReturn(currentRecord);
CleanPreKeysJob cleanPreKeysJob = new CleanPreKeysJob(getContext());
ObjectGraph objectGraph = ObjectGraph.create(new TestModule(accountManager, signedPreKeyStore));
objectGraph.inject(cleanPreKeysJob);
verify(signedPreKeyStore, never()).removeSignedPreKey(anyInt());
}
public void testConnectionError() throws Exception {
SignedPreKeyStore signedPreKeyStore = mock(SignedPreKeyStore.class);
TextSecureAccountManager accountManager = mock(TextSecureAccountManager.class);
MasterSecret masterSecret = mock(MasterSecret.class);
when(accountManager.getSignedPreKey()).thenThrow(new PushNetworkException("Connectivity error!"));
CleanPreKeysJob cleanPreKeysJob = new CleanPreKeysJob(getContext());
ObjectGraph objectGraph = ObjectGraph.create(new TestModule(accountManager, signedPreKeyStore));
objectGraph.inject(cleanPreKeysJob);
try {
cleanPreKeysJob.onRun(masterSecret);
throw new AssertionError("should have failed!");
} catch (IOException e) {
assertTrue(cleanPreKeysJob.onShouldRetry(e));
}
}
@Module(injects = {CleanPreKeysJob.class})
public static class TestModule {
private final TextSecureAccountManager accountManager;
private final SignedPreKeyStore signedPreKeyStore;
private TestModule(TextSecureAccountManager accountManager, SignedPreKeyStore signedPreKeyStore) {
this.accountManager = accountManager;
this.signedPreKeyStore = signedPreKeyStore;
}
@Provides TextSecureAccountManager provideTextSecureAccountManager() {
return accountManager;
}
@Provides
AxolotlStorageModule.SignedPreKeyStoreFactory provideSignedPreKeyStore() {
return new AxolotlStorageModule.SignedPreKeyStoreFactory() {
@Override
public SignedPreKeyStore create(MasterSecret masterSecret) {
return signedPreKeyStore;
}
};
}
}
}
@@ -0,0 +1,100 @@
package org.thoughtcrime.securesms.jobs;
import org.mockito.ArgumentCaptor;
import org.mockito.Mockito;
import org.thoughtcrime.securesms.TextSecureTestCase;
import org.thoughtcrime.securesms.crypto.MasterSecret;
import org.whispersystems.textsecure.api.TextSecureMessageSender;
import org.whispersystems.textsecure.api.push.TextSecureAddress;
import org.whispersystems.textsecure.api.push.exceptions.NotFoundException;
import org.whispersystems.textsecure.api.push.exceptions.PushNetworkException;
import java.io.IOException;
import dagger.Module;
import dagger.ObjectGraph;
import dagger.Provides;
import static org.mockito.Matchers.any;
import static org.mockito.Matchers.eq;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.verify;
import static org.thoughtcrime.securesms.dependencies.TextSecureCommunicationModule.TextSecureMessageSenderFactory;
public class DeliveryReceiptJobTest extends TextSecureTestCase {
public void testDelivery() throws IOException {
TextSecureMessageSender textSecureMessageSender = mock(TextSecureMessageSender.class);
long timestamp = System.currentTimeMillis();
DeliveryReceiptJob deliveryReceiptJob = new DeliveryReceiptJob(getContext(),
"+14152222222",
timestamp, "foo");
ObjectGraph objectGraph = ObjectGraph.create(new TestModule(textSecureMessageSender));
objectGraph.inject(deliveryReceiptJob);
deliveryReceiptJob.onRun();
ArgumentCaptor<TextSecureAddress> captor = ArgumentCaptor.forClass(TextSecureAddress.class);
verify(textSecureMessageSender).sendDeliveryReceipt(captor.capture(), eq(timestamp));
assertTrue(captor.getValue().getRelay().get().equals("foo"));
assertTrue(captor.getValue().getNumber().equals("+14152222222"));
}
public void testNetworkError() throws IOException {
TextSecureMessageSender textSecureMessageSender = mock(TextSecureMessageSender.class);
long timestamp = System.currentTimeMillis();
Mockito.doThrow(new PushNetworkException("network error"))
.when(textSecureMessageSender)
.sendDeliveryReceipt(any(TextSecureAddress.class), eq(timestamp));
DeliveryReceiptJob deliveryReceiptJob = new DeliveryReceiptJob(getContext(),
"+14152222222",
timestamp, "foo");
ObjectGraph objectGraph = ObjectGraph.create(new TestModule(textSecureMessageSender));
objectGraph.inject(deliveryReceiptJob);
try {
deliveryReceiptJob.onRun();
throw new AssertionError();
} catch (IOException e) {
assertTrue(deliveryReceiptJob.onShouldRetry(e));
}
Mockito.doThrow(new NotFoundException("not found"))
.when(textSecureMessageSender)
.sendDeliveryReceipt(any(TextSecureAddress.class), eq(timestamp));
try {
deliveryReceiptJob.onRun();
throw new AssertionError();
} catch (IOException e) {
assertFalse(deliveryReceiptJob.onShouldRetry(e));
}
}
@Module(injects = DeliveryReceiptJob.class)
public static class TestModule {
private final TextSecureMessageSender textSecureMessageSender;
public TestModule(TextSecureMessageSender textSecureMessageSender) {
this.textSecureMessageSender = textSecureMessageSender;
}
@Provides TextSecureMessageSenderFactory provideTextSecureMessageSenderFactory() {
return new TextSecureMessageSenderFactory() {
@Override
public TextSecureMessageSender create(MasterSecret masterSecret) {
return textSecureMessageSender;
}
};
}
}
}
@@ -0,0 +1,83 @@
package org.thoughtcrime.securesms.util;
import java.util.LinkedList;
import java.util.List;
import static junit.framework.Assert.assertEquals;
public class ListPartitionTest {
public void testPartitionEven() {
List<Integer> list = new LinkedList<>();
for (int i=0;i<100;i++) {
list.add(i);
}
List<List<Integer>> partitions = Util.partition(list, 10);
assertEquals(partitions.size(), 10);
int counter = 0;
for (int i=0;i<partitions.size();i++) {
List<Integer> partition = partitions.get(i);
assertEquals(partition.size(), 10);
for (int j=0;j<partition.size();j++) {
assertEquals((int)partition.get(j), counter++);
}
}
}
public void testPartitionOdd() {
List<Integer> list = new LinkedList<>();
for (int i=0;i<100;i++) {
list.add(i);
}
list.add(100);
List<List<Integer>> partitions = Util.partition(list, 10);
assertEquals(partitions.size(), 11);
int counter = 0;
for (int i=0;i<partitions.size()-1;i++) {
List<Integer> partition = partitions.get(i);
assertEquals(partition.size(), 10);
for (int j=0;j<partition.size();j++) {
assertEquals((int)partition.get(j), counter++);
}
}
assertEquals(partitions.get(10).size(), 1);
assertEquals((int)partitions.get(10).get(0), 100);
}
public void testPathological() {
List<Integer> list = new LinkedList<>();
for (int i=0;i<100;i++) {
list.add(i);
}
List<List<Integer>> partitions = Util.partition(list, 1);
assertEquals(partitions.size(), 100);
int counter = 0;
for (int i=0;i<partitions.size();i++) {
List<Integer> partition = partitions.get(i);
assertEquals(partition.size(), 1);
for (int j=0;j<partition.size();j++) {
assertEquals((int)partition.get(j), counter++);
}
}
}
}
@@ -0,0 +1,35 @@
package org.thoughtcrime.securesms.util;
import android.test.AndroidTestCase;
import junit.framework.AssertionFailedError;
import org.thoughtcrime.securesms.TextSecureTestCase;
import org.whispersystems.textsecure.api.util.InvalidNumberException;
import org.whispersystems.textsecure.api.util.PhoneNumberFormatter;
import static org.assertj.core.api.Assertions.assertThat;
public class PhoneNumberFormatterTest extends TextSecureTestCase {
private static final String LOCAL_NUMBER = "+15555555555";
public void testFormatNumberE164() throws Exception, InvalidNumberException {
assertThat(PhoneNumberFormatter.formatNumber("(555) 555-5555", LOCAL_NUMBER)).isEqualTo(LOCAL_NUMBER);
assertThat(PhoneNumberFormatter.formatNumber("555-5555", LOCAL_NUMBER)).isEqualTo(LOCAL_NUMBER);
assertThat(PhoneNumberFormatter.formatNumber("(123) 555-5555", LOCAL_NUMBER)).isNotEqualTo(LOCAL_NUMBER);
}
public void testFormatNumberEmail() throws Exception {
try {
PhoneNumberFormatter.formatNumber("person@domain.com", LOCAL_NUMBER);
throw new AssertionFailedError("should have thrown on email");
} catch (InvalidNumberException ine) {
// success
}
}
@Override
public void setUp() throws Exception {
super.setUp();
}
}
+2
View File
@@ -0,0 +1,2 @@
*.db
*.db.gz
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
+106
View File
@@ -0,0 +1,106 @@
import sys
import re
import argparse
import sqlite3
import gzip
from progressbar import ProgressBar, Counter, Timer
from lxml import etree
parser = argparse.ArgumentParser(prog='apntool', description="""Process Android's apn xml files and drop them into an
easily queryable SQLite db. Tested up to version 9 of
their APN file.""")
parser.add_argument('-v', '--version', action='version', version='%(prog)s v1.1')
parser.add_argument('-i', '--input', help='the xml file to parse', default='apns.xml', required=False)
parser.add_argument('-o', '--output', help='the sqlite db output file', default='apns.db', required=False)
parser.add_argument('--quiet', help='do not show progress or verbose instructions', action='store_true', required=False)
parser.add_argument('--no-gzip', help="do not gzip after creation", action='store_true', required=False)
args = parser.parse_args()
def normalized(target):
o2_typo = re.compile(r"02\.co\.uk")
port_typo = re.compile(r"(\d+\.\d+\.\d+\.\d+)\.(\d+)")
leading_zeros = re.compile(r"(/|\.|^)0+(\d+)")
subbed = o2_typo.sub(r'o2.co.uk', target)
subbed = port_typo.sub(r'\1:\2', subbed)
subbed = leading_zeros.sub(r'\1\2', subbed)
return subbed
try:
connection = sqlite3.connect(args.output)
cursor = connection.cursor()
cursor.execute('SELECT SQLITE_VERSION()')
version = cursor.fetchone()
if not args.quiet:
print("SQLite version: %s" % version)
print("Opening %s" % args.input)
cursor.execute("PRAGMA legacy_file_format=ON")
cursor.execute("PRAGMA journal_mode=DELETE")
cursor.execute("PRAGMA page_size=32768")
cursor.execute("VACUUM")
cursor.execute("DROP TABLE IF EXISTS apns")
cursor.execute("""CREATE TABLE apns(_id INTEGER PRIMARY KEY, mccmnc TEXT, mcc TEXT, mnc TEXT, carrier TEXT,
apn TEXT, mmsc TEXT, port INTEGER, type TEXT, protocol TEXT, bearer TEXT, roaming_protocol TEXT,
carrier_enabled INTEGER, mmsproxy TEXT, mmsport INTEGER, proxy TEXT, mvno_match_data TEXT,
mvno_type TEXT, authtype INTEGER, user TEXT, password TEXT, server TEXT)""")
apns = etree.parse(args.input)
root = apns.getroot()
pbar = None
if not args.quiet:
pbar = ProgressBar(widgets=['Processed: ', Counter(), ' apns (', Timer(), ')'], maxval=len(list(root))).start()
count = 0
for apn in root.iter("apn"):
if apn.get("mmsc") is None:
continue
sqlvars = ["?" for x in apn.attrib.keys()] + ["?"]
mccmnc = "%s%s" % (apn.get("mcc"), apn.get("mnc"))
normalized_mmsc = normalized(apn.get("mmsc"))
if normalized_mmsc != apn.get("mmsc"):
print("normalize MMSC: %s => %s" % (apn.get("mmsc"), normalized_mmsc))
apn.set("mmsc", normalized_mmsc)
if not apn.get("mmsproxy") is None:
normalized_mmsproxy = normalized(apn.get("mmsproxy"))
if normalized_mmsproxy != apn.get("mmsproxy"):
print("normalize proxy: %s => %s" % (apn.get("mmsproxy"), normalized_mmsproxy))
apn.set("mmsproxy", normalized_mmsproxy)
values = [apn.get(attrib) for attrib in apn.attrib.keys()] + [mccmnc]
keys = apn.attrib.keys() + ["mccmnc"]
cursor.execute("SELECT 1 FROM apns WHERE mccmnc = ? AND apn = ?", [mccmnc, apn.get("apn")])
if cursor.fetchone() is None:
statement = "INSERT INTO apns (%s) VALUES (%s)" % (", ".join(keys), ", ".join(sqlvars))
cursor.execute(statement, values)
count += 1
if not args.quiet:
pbar.update(count)
if not args.quiet:
pbar.finish()
connection.commit()
print("Successfully written to %s" % args.output)
if not args.no_gzip:
gzipped_file = "%s.gz" % (args.output,)
with open(args.output, 'rb') as orig:
with gzip.open(gzipped_file, 'wb') as gzipped:
gzipped.writelines(orig)
print("Successfully gzipped to %s" % gzipped_file)
if not args.quiet:
print("\nTo include this in the distribution, copy it to the project's assets/databases/ directory.")
print("If you support API 10 or lower, you must use the gzipped version to avoid corruption.")
except sqlite3.Error, e:
if connection:
connection.rollback()
print("Error: %s" % e.args[0])
sys.exit(1)
finally:
if connection:
connection.close()
+3
View File
@@ -0,0 +1,3 @@
argparse>=1.2.1
lxml>=3.3.3
progressbar-latest>=2.4
Binary file not shown.
Binary file not shown.

After

Width:  |  Height:  |  Size: 43 KiB

Binary file not shown.
Binary file not shown.

After

Width:  |  Height:  |  Size: 323 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 394 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 477 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 270 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 278 KiB

Binary file not shown.
+246
View File
@@ -0,0 +1,246 @@
buildscript {
repositories {
maven {
url "https://repo1.maven.org/maven2"
}
}
dependencies {
classpath 'com.android.tools.build:gradle:1.0.1'
classpath files('libs/gradle-witness.jar')
}
}
apply plugin: 'com.android.application'
apply plugin: 'witness'
repositories {
maven {
url "https://repo1.maven.org/maven2/"
}
maven {
url "https://raw.github.com/whispersystems/maven/master/preferencefragment/releases/"
}
maven {
url "https://raw.github.com/whispersystems/maven/master/smil/releases/"
}
maven {
url "https://raw.github.com/whispersystems/maven/master/shortcutbadger/releases/"
}
jcenter()
mavenLocal()
}
dependencies {
compile 'me.leolin:ShortcutBadger:1.0.2-WS2'
compile 'se.emilsjolander:stickylistheaders:2.2.0'
compile 'com.google.android.gms:play-services-base:6.5.87'
compile 'com.astuetz:pagerslidingtabstrip:1.0.1'
compile 'org.w3c:smil:1.0.0'
compile 'org.apache.httpcomponents:httpclient-android:4.3.5'
compile 'com.github.chrisbanes.photoview:library:1.2.3'
compile 'com.makeramen:roundedimageview:1.5.0'
compile ('com.afollestad:material-dialogs:0.6.4.7') {
exclude module: 'appcompat-v7'
exclude module: 'recyclerview-v7'
exclude module: 'support-annotations'
}
compile 'com.soundcloud.android:android-crop:0.9.10@aar'
compile 'com.android.support:appcompat-v7:21.0.3'
compile 'com.android.support:recyclerview-v7:21.0.3'
compile 'com.melnykov:floatingactionbutton:1.1.0'
compile 'com.google.zxing:android-integration:3.1.0'
compile ('com.android.support:support-v4-preferencefragment:1.0.0@aar'){
exclude module: 'support-v4'
}
compile 'com.squareup.dagger:dagger:1.2.2'
compile ("com.doomonafireball.betterpickers:library:1.5.3") {
exclude group: 'com.android.support', module: 'support-v4'
}
compile 'com.madgag.spongycastle:prov:1.51.0.0'
provided 'com.squareup.dagger:dagger-compiler:1.2.2'
compile 'org.whispersystems:jobmanager:0.11.0'
compile 'org.whispersystems:libpastelog:1.0.6'
compile 'org.whispersystems:textsecure-android:1.3.0'
androidTestCompile 'com.google.dexmaker:dexmaker:1.2'
androidTestCompile 'com.google.dexmaker:dexmaker-mockito:1.2'
androidTestCompile ('org.assertj:assertj-core:1.7.1') {
exclude group: 'org.hamcrest', module: 'hamcrest-core'
}
androidTestCompile ('com.squareup.assertj:assertj-android:1.0.0') {
exclude group: 'org.hamcrest', module: 'hamcrest-core'
}
androidTestCompile ('com.android.support.test.espresso:espresso-core:2.0') {
exclude group: 'javax.inject'
}
androidTestCompile 'com.android.support.test:testing-support-lib:0.1'
}
dependencyVerification {
verify = [
'me.leolin:ShortcutBadger:027977c718035e5997035e04e05152d6c72d94df645e8b7099a274ada722bd14',
'se.emilsjolander:stickylistheaders:89146b46c96fea0e40200474a2625cda10fe94891e4128f53cdb42375091b9b6',
'com.google.android.gms:play-services-base:832cb6b3130e871db6a412c4ab585656dbcc5e7948101f190186757785703f75',
'com.astuetz:pagerslidingtabstrip:f1641396732c7132a7abb837e482e5ee2b0ebb8d10813fc52bbaec2c15c184c2',
'org.w3c:smil:085dc40f2bb249651578bfa07499fd08b16ad0886dbe2c4078586a408da62f9b',
'org.apache.httpcomponents:httpclient-android:6f56466a9bd0d42934b90bfbfe9977a8b654c058bf44a12bdc2877c4e1f033f1',
'com.github.chrisbanes.photoview:library:8b5344e206f125e7ba9d684008f36c4992d03853c57e5814125f88496126e3cc',
'com.makeramen:roundedimageview:7dda2e78c406760e5c356ccce59b0df46b5b171cf18abb891998594405021548',
'com.afollestad:material-dialogs:6ed57c1c479219f8ae929c310fc171dbfcbcee8326a6dcd50a91959d69eccdf0',
'com.soundcloud.android:android-crop:ffd4b973cf6e97f7d64118a0dc088df50e9066fd5634fe6911dd0c0c5d346177',
'com.android.support:appcompat-v7:5dbeb5316d0a6027d646ae552804c3baa5e3bd53f7f33db50904d51505c8a0e5',
'com.android.support:recyclerview-v7:e525ad3f33c84bb12b73d2dc975b55364a53f0f2d0697e043efba59ba73e22d2',
'com.melnykov:floatingactionbutton:0679ad9f7d61eb7aeab91e8dc56358cdedd5b1c1b9c48464499ffa05c40d3985',
'com.google.zxing:android-integration:89e56aadf1164bd71e57949163c53abf90af368b51669c0d4a47a163335f95c4',
'com.android.support:support-v4-preferencefragment:5470f5872514a6226fa1fc6f4e000991f38805691c534cf0bd2778911fc773ad',
'com.squareup.dagger:dagger:789aca24537022e49f91fc6444078d9de8f1dd99e1bfb090f18491b186967883',
'com.doomonafireball.betterpickers:library:132ecd685c95a99e7377c4e27bfadbb2d7ed0bea995944060cd62d4369fdaf3d',
'com.madgag.spongycastle:prov:b8c3fec3a59aac1aa04ccf4dad7179351e54ef7672f53f508151b614c131398a',
'org.whispersystems:jobmanager:ea9cb943c4892fb90c1eea1be30efeb85cefca213d52c788419553b58d0ed70d',
'org.whispersystems:libpastelog:550d33c565380d90f4c671e7b8ed5f3a6da55a9fda468373177106b2eb5220b2',
'org.whispersystems:textsecure-android:df4c1ac9ee8f7cd43c8c07d64b16e31875e04632afc3fe73f2a47292a86c79a1',
'com.android.support:support-annotations:fdee2354787ef66b268e75958de3f7f6c4f8f325510a6dac9f49c929f83a63de',
'com.nineoldandroids:library:68025a14e3e7673d6ad2f95e4b46d78d7d068343aa99256b686fe59de1b3163a',
'javax.inject:javax.inject:91c77044a50c481636c32d916fd89c9118a72195390452c81065080f957de7ff',
'com.madgag.spongycastle:core:8d6240b974b0aca4d3da9c7dd44d42339d8a374358aca5fc98e50a995764511f',
'org.whispersystems:textsecure-java:59d7c998c83a0f96bbc84db36719c9be8007bce16ee1ba9748af5610ab429656',
'org.whispersystems:axolotl-android:40d3db5004a84749a73f68d2f0d01b2ae35a73c54df96d8c6c6723b96efb6fc0',
'com.googlecode.libphonenumber:libphonenumber:eba17eae81dd622ea89a00a3a8c025b2f25d342e0d9644c5b62e16f15687c3ab',
'com.google.protobuf:protobuf-java:e0c1c64575c005601725e7c6a02cebf9e1285e888f756b2a1d73ffa8d725cc74',
'com.squareup.okhttp:okhttp:89b7f63e2e5b6c410266abc14f50fe52ea8d2d8a57260829e499b1cd9f0e61af',
'com.fasterxml.jackson.core:jackson-databind:835097bcdd11f5bc8a08378c70d4c8054dfa4b911691cc2752063c75534d198d',
'org.whispersystems:axolotl-java:6daee739b89d8d7101de6d98f77132fee48495c6ea647d880e77def842f999ea',
'org.whispersystems:curve25519-android:3c29a4131a69b0d16baaa3d707678deb39602c3a3ffd75805ce7f9db252e5d0d',
'com.squareup.okio:okio:5e1098bd3fdee4c3347f5ab815b40ba851e4ab1b348c5e49a5b0362f0ce6e978',
'com.fasterxml.jackson.core:jackson-annotations:0ca408c24202a7626ec8b861e99d85eca5e38b73311dd6dd12e3e9deecc3fe94',
'com.fasterxml.jackson.core:jackson-core:cbf4604784b4de226262845447a1ad3bb38a6728cebe86562e2c5afada8be2c0',
'org.whispersystems:curve25519-java:9ccef8f5aba05d9942336f023c589d6278b4f9135bdc34a7bade1f4e7ad65fa3',
'com.android.support:support-v4:703572d3015a088cc5604b7e38885af3d307c829d0c5ceaf8654ff41c71cd160',
]
}
android {
compileSdkVersion 22
buildToolsVersion '22.0.1'
dexOptions {
javaMaxHeapSize "4g"
}
defaultConfig {
minSdkVersion 9
targetSdkVersion 22
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
buildConfigField "long", "BUILD_TIMESTAMP", System.currentTimeMillis() + "L"
}
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_7
targetCompatibility JavaVersion.VERSION_1_7
}
packagingOptions {
exclude 'LICENSE.txt'
exclude 'LICENSE'
exclude 'NOTICE'
exclude 'asm-license.txt'
}
signingConfigs {
release
}
buildTypes {
debug {
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android.txt'),
'proguard-google-play-services.pro',
'proguard-dagger.pro',
'proguard-jackson.pro',
'proguard-sqlite.pro',
'proguard-appcompat-v7.pro',
'proguard-square-okhttp.pro',
'proguard-square-okio.pro',
'proguard-spongycastle.pro',
'proguard-rounded-image-view.pro',
'proguard.cfg'
}
release {
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android.txt'),
'proguard-google-play-services.pro',
'proguard-dagger.pro',
'proguard-jackson.pro',
'proguard-sqlite.pro',
'proguard-appcompat-v7.pro',
'proguard-square-okhttp.pro',
'proguard-square-okio.pro',
'proguard-spongycastle.pro',
'proguard-rounded-image-view.pro',
'proguard.cfg'
signingConfig signingConfigs.release
}
}
sourceSets {
main {
manifest.srcFile 'AndroidManifest.xml'
java.srcDirs = ['src']
resources.srcDirs = ['src']
aidl.srcDirs = ['src']
renderscript.srcDirs = ['src']
res.srcDirs = ['res']
assets.srcDirs = ['assets']
}
androidTest {
java.srcDirs = ['androidTest/java']
resources.srcDirs = ['androidTest/java']
aidl.srcDirs = ['androidTest/java']
renderscript.srcDirs = ['androidTest/java']
}
}
packagingOptions {
exclude 'META-INF/LICENSE'
exclude 'META-INF/NOTICE'
}
lintOptions {
abortOnError false
}
}
tasks.whenTaskAdded { task ->
if (task.name.equals("lint")) {
task.enabled = false
}
}
def Properties props = new Properties()
def propFile = new File('signing.properties')
if (propFile.canRead()){
props.load(new FileInputStream(propFile))
if (props !=null &&
props.containsKey('STORE_FILE') &&
props.containsKey('STORE_PASSWORD') &&
props.containsKey('KEY_ALIAS') &&
props.containsKey('KEY_PASSWORD'))
{
android.signingConfigs.release.storeFile = file(props['STORE_FILE'])
android.signingConfigs.release.storePassword = props['STORE_PASSWORD']
android.signingConfigs.release.keyAlias = props['KEY_ALIAS']
android.signingConfigs.release.keyPassword = props['KEY_PASSWORD']
} else {
println 'signing.properties found but some entries are missing'
android.buildTypes.release.signingConfig = null
}
}else {
println 'signing.properties not found'
android.buildTypes.release.signingConfig = null
}
-25
View File
@@ -1,25 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<project name="TextSecure" default="help">
<property file="local.properties" />
<property file="ant.properties" />
<property environment="env" />
<condition property="sdk.dir" value="${env.ANDROID_HOME}">
<isset property="env.ANDROID_HOME" />
</condition>
<loadproperties srcFile="project.properties" />
<fail
message="sdk.dir is missing. Make sure to generate local.properties using 'android update project' or to inject it through the ANDROID_HOME environment variable."
unless="sdk.dir"
/>
<import file="custom_rules.xml" optional="true" />
<!-- version-tag: 1 -->
<import file="${sdk.dir}/tools/ant/build.xml" />
</project>
+31
View File
@@ -0,0 +1,31 @@
##Translations
Please do not submit issues or pull requests for translation fixes. Anyone can update the translations in [Transifex](https://www.transifex.com/projects/p/textsecure-official/). Please submit your corrections there.
## Submitting useful bug reports
1. Search our issues first to make sure this is not a duplicate.
1. Read the [Submitting useful bug reports guide](https://github.com/WhisperSystems/TextSecure/wiki/Submitting-useful-bug-reports) before posting a bug.
## Development Ideology
Truths which we believe to be self-evident:
1. **The answer is not more options.** If you feel compelled to add a
preference that's exposed to the user, it's very possible you've made
a wrong turn somewhere.
1. **The user doesn't know what a key is.** We need to minimize the points
at which a user is exposed to this sort of terminology as extremely as
possible.
1. **There are no power users.** The idea that some users "understand"
concepts better than others has proven to be, for the most part, false.
If anything, "power users" are more dangerous than the rest, and we
should avoid exposing dangerous functionality to them.
1. **If it's "like PGP," it's wrong.** PGP is our spirit guide for what
not to do.
1. **It's an asynchronous world.** Be wary of anything that is
anti-asynchronous: ACKs, protocol confirmations, or any protocol-level
"advisory" message.
1. **There is no such thing as time.** Protocol ideas that require synchronized
clocks are doomed to failure.
Before you submit a pull request, please check if your code follows the [Code style Guidelines](https://github.com/WhisperSystems/RedPhone/wiki/Code-style-Guidelines).
Binary file not shown.
+6
View File
@@ -0,0 +1,6 @@
#Fri Nov 28 10:03:17 PST 2014
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-2.2.1-all.zip
Vendored Executable
+164
View File
@@ -0,0 +1,164 @@
#!/usr/bin/env bash
##############################################################################
##
## Gradle start up script for UN*X
##
##############################################################################
# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
DEFAULT_JVM_OPTS=""
APP_NAME="Gradle"
APP_BASE_NAME=`basename "$0"`
# Use the maximum available, or set MAX_FD != -1 to use that value.
MAX_FD="maximum"
warn ( ) {
echo "$*"
}
die ( ) {
echo
echo "$*"
echo
exit 1
}
# OS specific support (must be 'true' or 'false').
cygwin=false
msys=false
darwin=false
case "`uname`" in
CYGWIN* )
cygwin=true
;;
Darwin* )
darwin=true
;;
MINGW* )
msys=true
;;
esac
# For Cygwin, ensure paths are in UNIX format before anything is touched.
if $cygwin ; then
[ -n "$JAVA_HOME" ] && JAVA_HOME=`cygpath --unix "$JAVA_HOME"`
fi
# Attempt to set APP_HOME
# Resolve links: $0 may be a link
PRG="$0"
# Need this for relative symlinks.
while [ -h "$PRG" ] ; do
ls=`ls -ld "$PRG"`
link=`expr "$ls" : '.*-> \(.*\)$'`
if expr "$link" : '/.*' > /dev/null; then
PRG="$link"
else
PRG=`dirname "$PRG"`"/$link"
fi
done
SAVED="`pwd`"
cd "`dirname \"$PRG\"`/" >&-
APP_HOME="`pwd -P`"
cd "$SAVED" >&-
CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar
# Determine the Java command to use to start the JVM.
if [ -n "$JAVA_HOME" ] ; then
if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
# IBM's JDK on AIX uses strange locations for the executables
JAVACMD="$JAVA_HOME/jre/sh/java"
else
JAVACMD="$JAVA_HOME/bin/java"
fi
if [ ! -x "$JAVACMD" ] ; then
die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME
Please set the JAVA_HOME variable in your environment to match the
location of your Java installation."
fi
else
JAVACMD="java"
which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
Please set the JAVA_HOME variable in your environment to match the
location of your Java installation."
fi
# Increase the maximum file descriptors if we can.
if [ "$cygwin" = "false" -a "$darwin" = "false" ] ; then
MAX_FD_LIMIT=`ulimit -H -n`
if [ $? -eq 0 ] ; then
if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then
MAX_FD="$MAX_FD_LIMIT"
fi
ulimit -n $MAX_FD
if [ $? -ne 0 ] ; then
warn "Could not set maximum file descriptor limit: $MAX_FD"
fi
else
warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT"
fi
fi
# For Darwin, add options to specify how the application appears in the dock
if $darwin; then
GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\""
fi
# For Cygwin, switch paths to Windows format before running java
if $cygwin ; then
APP_HOME=`cygpath --path --mixed "$APP_HOME"`
CLASSPATH=`cygpath --path --mixed "$CLASSPATH"`
# We build the pattern for arguments to be converted via cygpath
ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null`
SEP=""
for dir in $ROOTDIRSRAW ; do
ROOTDIRS="$ROOTDIRS$SEP$dir"
SEP="|"
done
OURCYGPATTERN="(^($ROOTDIRS))"
# Add a user-defined pattern to the cygpath arguments
if [ "$GRADLE_CYGPATTERN" != "" ] ; then
OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)"
fi
# Now convert the arguments - kludge to limit ourselves to /bin/sh
i=0
for arg in "$@" ; do
CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -`
CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option
if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition
eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"`
else
eval `echo args$i`="\"$arg\""
fi
i=$((i+1))
done
case $i in
(0) set -- ;;
(1) set -- "$args0" ;;
(2) set -- "$args0" "$args1" ;;
(3) set -- "$args0" "$args1" "$args2" ;;
(4) set -- "$args0" "$args1" "$args2" "$args3" ;;
(5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;;
(6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;;
(7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;;
(8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;;
(9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;;
esac
fi
# Split up the JVM_OPTS And GRADLE_OPTS values into an array, following the shell quoting and substitution rules
function splitJvmOpts() {
JVM_OPTS=("$@")
}
eval splitJvmOpts $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS
JVM_OPTS[${#JVM_OPTS[*]}]="-Dorg.gradle.appname=$APP_BASE_NAME"
exec "$JAVACMD" "${JVM_OPTS[@]}" -classpath "$CLASSPATH" org.gradle.wrapper.GradleWrapperMain "$@"
Vendored
+90
View File
@@ -0,0 +1,90 @@
@if "%DEBUG%" == "" @echo off
@rem ##########################################################################
@rem
@rem Gradle startup script for Windows
@rem
@rem ##########################################################################
@rem Set local scope for the variables with windows NT shell
if "%OS%"=="Windows_NT" setlocal
@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
set DEFAULT_JVM_OPTS=
set DIRNAME=%~dp0
if "%DIRNAME%" == "" set DIRNAME=.
set APP_BASE_NAME=%~n0
set APP_HOME=%DIRNAME%
@rem Find java.exe
if defined JAVA_HOME goto findJavaFromJavaHome
set JAVA_EXE=java.exe
%JAVA_EXE% -version >NUL 2>&1
if "%ERRORLEVEL%" == "0" goto init
echo.
echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
echo.
echo Please set the JAVA_HOME variable in your environment to match the
echo location of your Java installation.
goto fail
:findJavaFromJavaHome
set JAVA_HOME=%JAVA_HOME:"=%
set JAVA_EXE=%JAVA_HOME%/bin/java.exe
if exist "%JAVA_EXE%" goto init
echo.
echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME%
echo.
echo Please set the JAVA_HOME variable in your environment to match the
echo location of your Java installation.
goto fail
:init
@rem Get command-line arguments, handling Windowz variants
if not "%OS%" == "Windows_NT" goto win9xME_args
if "%@eval[2+2]" == "4" goto 4NT_args
:win9xME_args
@rem Slurp the command line arguments.
set CMD_LINE_ARGS=
set _SKIP=2
:win9xME_args_slurp
if "x%~1" == "x" goto execute
set CMD_LINE_ARGS=%*
goto execute
:4NT_args
@rem Get arguments from the 4NT Shell from JP Software
set CMD_LINE_ARGS=%$
:execute
@rem Setup the command line
set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar
@rem Execute Gradle
"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS%
:end
@rem End local scope for the variables with windows NT shell
if "%ERRORLEVEL%"=="0" goto mainEnd
:fail
rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of
rem the _cmd.exe /c_ return code!
if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1
exit /b 1
:mainEnd
if "%OS%"=="Windows_NT" endlocal
:omega
Binary file not shown.
BIN
View File
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
+8
View File
@@ -0,0 +1,8 @@
-keep public class android.support.v7.widget.** { *; }
-keep public class android.support.v7.internal.widget.** { *; }
# below line disabled due to LGE ROM bug.
# -keep public class android.support.v7.internal.view.menu.** { *; }
-keep public class * extends android.support.v4.view.ActionProvider {
public <init>(android.content.Context);
}
+20
View File
@@ -0,0 +1,20 @@
-keepattributes *Annotation*,EnclosingMethod
-keep @interface dagger.*,javax.inject.*
-keep @dagger.Module class *
-keepclassmembers class * {
@javax.inject.* *;
@dagger.* *;
<init>();
}
-keepclasseswithmembernames class * {
@javax.inject.* <fields>;
}
-keep class javax.inject.** { *; }
-keep class **$$ModuleAdapter
-keep class **$$InjectAdapter
-keep class **$$StaticInjection
-keep class dagger.** { *; }
-keep class * extends dagger.** { *; }
-keep interface dagger.** {*;}
-dontwarn dagger.internal.codegen.**
+19
View File
@@ -0,0 +1,19 @@
## Google Play Services 4.3.23 specific rules ##
## https://developer.android.com/google/play-services/setup.html#Proguard ##
-keep class * extends java.util.ListResourceBundle {
protected Object[][] getContents();
}
-keep public class com.google.android.gms.common.internal.safeparcel.SafeParcelable {
public static final *** NULL;
}
-keepnames @com.google.android.gms.common.annotation.KeepName class *
-keepclassmembernames class * {
@com.google.android.gms.common.annotation.KeepName *;
}
-keepnames class * implements android.os.Parcelable {
public static final ** CREATOR;
}
+12
View File
@@ -0,0 +1,12 @@
# Proguard configuration for Jackson 2.x (fasterxml package instead of codehaus package)
-keepattributes *Annotation*,EnclosingMethod,Signature
-keepnames class com.fasterxml.jackson.** {
*;
}
-keepnames interface com.fasterxml.jackson.** {
*;
}
-dontwarn com.fasterxml.jackson.databind.**
-keep class org.codehaus.** { *; }
+1
View File
@@ -0,0 +1 @@
-dontwarn com.squareup.picasso.**
+2
View File
@@ -0,0 +1,2 @@
-keep class org.spongycastle.** {*;}
-dontwarn javax.naming.**
+2
View File
@@ -0,0 +1,2 @@
-keep class org.sqlite.** { *; }
-keep class org.sqlite.database.** { *; }
+6
View File
@@ -0,0 +1,6 @@
# OkHttp
-keepattributes Signature
-keepattributes *Annotation*
-keep class com.squareup.okhttp.** { *; }
-keep interface com.squareup.okhttp.** { *; }
-dontwarn com.squareup.okhttp.**
+5
View File
@@ -0,0 +1,5 @@
# Okio
-keep class sun.misc.Unsafe { *; }
-dontwarn java.nio.file.*
-dontwarn org.codehaus.mojo.animal_sniffer.IgnoreJRERequirement
-dontwarn okio.**
+5
View File
@@ -0,0 +1,5 @@
-dontoptimize
-keepattributes SourceFile,LineNumberTable
-keep class org.whispersystems.** { *; }
-keep class org.thoughtcrime.securesms.** { *; }
+17
View File
@@ -0,0 +1,17 @@
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
android:interpolator="@android:anim/decelerate_interpolator">
<scale
android:duration="150"
android:fromXScale="0.85"
android:fromYScale="0.85"
android:toXScale="1.0"
android:toYScale="1.0"
android:pivotX="50%"
android:pivotY="50%" />
<alpha
android:duration="150"
android:fromAlpha="0.6"
android:toAlpha="1.0" />
</set>
+17
View File
@@ -0,0 +1,17 @@
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
android:interpolator="@android:anim/decelerate_interpolator">
<scale
android:duration="150"
android:fromXScale="1.0"
android:fromYScale="1.0"
android:toXScale="0.85"
android:toYScale="0.85"
android:pivotX="50%"
android:pivotY="50%" />
<alpha
android:duration="150"
android:fromAlpha="1.0"
android:toAlpha="0.6" />
</set>
+9
View File
@@ -0,0 +1,9 @@
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
android:interpolator="@android:anim/decelerate_interpolator">
<translate
android:duration="150"
android:fromXDelta="100%"
android:toXDelta="0%" />
</set>
+9
View File
@@ -0,0 +1,9 @@
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
android:interpolator="@android:anim/decelerate_interpolator">
<translate
android:duration="150"
android:fromXDelta="0%"
android:toXDelta="100%" />
</set>
+5
View File
@@ -0,0 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android" >
<item android:state_enabled="false" android:color="@color/gray50"/>
<item android:color="@color/gray5"/>
</selector>
@@ -0,0 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android" >
<item android:state_enabled="false" android:color="@color/gray50"/>
<item android:color="@color/gray13"/>
</selector>
Binary file not shown.

Before

Width:  |  Height:  |  Size: 851 B

After

Width:  |  Height:  |  Size: 688 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 757 B

After

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 528 B

After

Width:  |  Height:  |  Size: 417 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 421 B

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.5 KiB

After

Width:  |  Height:  |  Size: 546 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 266 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.3 KiB

After

Width:  |  Height:  |  Size: 292 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 283 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 312 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 117 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 123 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 319 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 171 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 171 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 321 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 304 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 157 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 360 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 129 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 451 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 541 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 560 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 672 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 407 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 394 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 858 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 869 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 369 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 425 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 381 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 331 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.8 KiB

After

Width:  |  Height:  |  Size: 1.1 KiB

Some files were not shown because too many files have changed in this diff Show More