139 Commits

Author SHA1 Message Date
Daniel Bartram
67415a8dcb Improve generated contact photos with emoji names
Improve the logic for generating contact photos with contact names
which start with emoji or non-language characters.

This fixes the infamous "question-mark-in-a-box" character from
appearing in the contact photo for contacts whose names begin with
an emoji or a non-language symbol.

Closes #3684
2015-11-26 07:24:57 -08:00
Jake McGinty
473e470883 fix header/footer item ID issue
fixes #4667
Closes #4685
// FREEBIE
2015-11-22 17:30:36 -08:00
Jake McGinty
61386e9ca9 more useful contact select headers
Closes #4608
// FREEBIE
2015-11-19 11:56:40 -08:00
Jake McGinty
7aeb4c96ee fix crash on null Android contact name
fixes #4592
Closes #4594
// FREEBIE
2015-11-19 11:07:39 -08:00
Moxie Marlinspike
8fc690d8e0 Update to libtextsecure 1.8.3
Fixes #4549

// FREEBIE
2015-11-19 10:30:26 -08:00
Moxie Marlinspike
ff123943cb Fully differentiate Signal vs non-Signal contacts
// FREEBIE
2015-11-19 10:30:25 -08:00
Moxie Marlinspike
b136fed6f7 Update contact DB on incoming messages
When we receive a Signal message from a previously unregistered
user, reflect that in the contact DB.

Fixes #3949
Closes #4492
// FREEBIE
2015-11-12 15:20:16 -08:00
Jake McGinty
fb8d6cb538 contact selection reeemix
1) RecyclerView-based, with better long scroller
   and more material-inspired look.
2) Add badge for Signal users to contact selection
   list.

// FREEBIE
2015-11-12 15:20:16 -08:00
Moxie Marlinspike
7bec5efe1a Add 'Signal Call' option to contact card
Fixes #4392
Closes #4465
// FREEBIE
2015-11-12 15:20:16 -08:00
Moxie Marlinspike
b5b564cfe1 Make sure the number we add canonicalizes to the number we know.
Fixes #4406
// FREEBIE
2015-11-06 10:50:47 -08:00
Jake McGinty
796940bda5 fix ContactSelectionListItem NPE
Fixes #4394
Closes #4399
// FREEBIE
2015-11-05 11:12:22 -08:00
Jake McGinty
3e798a9863 batch invitation
// FREEBIE
2015-11-04 17:56:20 -08:00
Moxie Marlinspike
8d82033855 Notify when contacts join Signal
Closes #4314
// FREEBIE
2015-11-04 17:56:20 -08:00
Moxie Marlinspike
11a93fabe5 Synchronize with paired devices when a contact changes.
// FREEBIE
2015-11-04 17:56:19 -08:00
Moxie Marlinspike
4044da849e Replace all strings containing 'TextSecure' with 'Signal'
// FREEBIE
2015-09-30 14:30:10 -07:00
Moxie Marlinspike
961b9b882f Working bluetooth
// FREEBIE
2015-09-30 14:30:09 -07:00
Moxie Marlinspike
d83a3d71bc Support for Signal calls.
Merge in RedPhone

// FREEBIE
2015-09-30 14:30:09 -07:00
Matthias Voppichler
cbcd53a8a0 fixing duplicate system-contacts
Fixes #4029
Closes #4072
2015-09-24 14:12:09 -07:00
Jake McGinty
0c9d9e8dcf use glide for encoding and resizing outgoing media
Closes #3915
// FREEBIE
2015-09-02 12:34:28 -07:00
Moxie Marlinspike
bbf33f88e0 Support for static RecipientDetails for certain shortcodes.
Closes #3813
// FREEBIE
2015-07-29 16:17:27 -07:00
Moxie Marlinspike
156a86013f Add phone number type to contacts DB to fix HTC bug.
Fixes #3784
// FREEBIE
2015-07-24 10:39:29 -07:00
Moxie Marlinspike
f04281ac4a Resolve names off Recipient objects in contact selection.
Fixes #3715
// FREEBIE
2015-07-21 13:30:29 -07:00
Moxie Marlinspike
f4104f696e Search TextSecure contacts by name or number.
Fixes #3710
// FREEBIE
2015-07-20 16:41:05 -07:00
Moxie Marlinspike
73bc7220db Force explicit raw contact aggregation when possible.
1) Don't add registered numbers that aren't already contacts.

2) When adding raw contacts, force aggregation to an existing
   raw contact.

// FREEBIE
2015-07-16 22:40:04 -07:00
Moxie Marlinspike
0e7fcc6893 Extract string resource.
// FREEBIE
2015-07-16 11:15:56 -07:00
Moxie Marlinspike
410ec57f80 Don't create a canonical id for every character typed.
// FREEBIE
2015-07-16 11:15:56 -07:00
Moxie Marlinspike
2ef0054840 Update look of contact selection activities.
// FREEBIE
2015-07-16 11:15:56 -07:00
Moxie Marlinspike
704f2b91e2 Clean up contact queries.
// FREEBIE
2015-07-16 11:15:56 -07:00
Moxie Marlinspike
d1940fe0f9 Support for populating contacts DB with TS account type.
// FREEBIE
2015-07-16 11:15:56 -07:00
Moxie Marlinspike
4ea40b30a2 Switch to enum and theme type for MaterialColor.
// FREEBIE
2015-07-01 12:24:38 -07:00
Moxie Marlinspike
9bf7562d49 Use theme-defined weights instead of ThemeType.
// FREEBIE
2015-07-01 12:24:38 -07:00
Moxie Marlinspike
ce2f66ad17 Refactor colorization to support dark theme.
// FREEBIE
2015-07-01 12:24:38 -07:00
Moxie Marlinspike
78289ded8f Fully colorize conversations.
1. Switch from 300 to 500 colors.

2. Colorize incoming conversation bubbles.

3. Colorize recipeint preference activity toolbar.

4. Support inverted colors in avatars.

5. Make status bar icons tint according to secondary color.

// FREEBIE
2015-06-29 16:06:59 -07:00
Moxie Marlinspike
fb9f16ad29 Colorize conversations.
// FREEBIE
2015-06-27 19:43:18 -07:00
Moxie Marlinspike
64df85f3ee Refactor contact photo logic to not reuse drawables.
// FREEBIE
2015-06-27 19:43:18 -07:00
Jake McGinty
37b9550de6 upgrade glide and RoundedImageView
Closes #3417
// FREEBIE
2015-06-18 10:04:12 -07:00
Moxie Marlinspike
40af2a81db Support for per-recipient muting, blocking, and ringtones.
Fixes #757
Fixes #354
Fixes #222
Closes #1815
Closes #3378

// FREEBIE
2015-06-11 11:09:02 -07:00
Michael Herbig
18436dc3be Fix context leak from lingering RecipientModifiedListener.
Because ContactSelectionListItem is used as a
RecipientModifiedListener, it leaks its context
(NewConversationActivity/PushContactSelectionActivity),
which can lead to OOM crashes.

Closes #3214
// FREEBIE
2015-05-21 07:25:20 -07:00
Moxie Marlinspike
636b11abea Refactor ContactSelectionListAdapter and associated views.
Fixes #3181
Closes #3197

// FREEBIE
2015-05-20 12:52:43 -07:00
Moxie Marlinspike
833fcd10ab Fix for when a stored contact's name field is empty.
Display # instead of + in the avatar.

Closes #3141
// FREEBIE
2015-05-11 22:20:57 -07:00
Moxie Marlinspike
40ca2575da For # too. 2015-05-09 09:10:36 -07:00
Moxie Marlinspike
68234959c4 Fix for occasional generated avatar mis-sizing in conversation.
Drawables are (strangely) mutable objects.  We reuse a single
drawable for each recipient, but some avatar views (the
conversation list -- 40dp) are larger than others (the
conversation -- 30dp).

This results in a situation where TextDrawable doesn't render
itself appropriately, because the bounds are modified by a larger
view.

Giving the Drawable an intrinsic width and height resolves this
conflict.

// FREEBIE
2015-05-08 15:08:44 -07:00
Moxie Marlinspike
41cad291f9 Display a generated avatar icon rather than a single default.
If the contact doesn't have an image, render a color-coded
background and the first letter of the contact's name.

1) Don't display anything during recipient resolution.

2) Display a # icon in material gray for recipients with no name.

3) Display a material group icon in material gray for groups with
   no avatar icon set.

Closes #3104

// FREEBIE
2015-05-07 10:36:54 -07:00
Jake McGinty
b37c81ddf1 Upgrade to AppCompat v22.1
1) update material-dialogs to fix build
2) change to AppCompat autocomplete and fix visual bug in GB

Closes #3089
// FREEBIE
2015-04-30 16:51:16 -07:00
Jake McGinty
b3707021b1 maintain one ContactsDatabase instance per Loader
Fixes #3004
Closes #3041
Closes #3034

// FREEBIE
2015-04-23 14:28:39 -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
Jake McGinty
77e846d24e Fix cursor leak when resolving contact photos
Closes #2933

// FREEBIE
2015-04-10 10:07:22 -07:00
Rhodey Orbits
87760a795d Add "new message to <number>" always.
Fixes #2660
Closes #2854

// FREEBIE
2015-04-02 14:32:25 -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
a4e18c515c Remove encrypted SMS transport, simplify transport options.
Closes #2647

// FREEBIE
2015-03-12 17:53:38 -07: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
Jake McGinty
62816ee51a rounded ImageView instead of Bitmap, crop-select
// FREEBIE
2015-01-21 17:39:54 -10:00
Calvin Hu
c89fbabbf3 refresh contacts database on new db query 2015-01-13 15:16:30 -10: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
agrajaghh
0b62cf372b whitespace cleanup
//FREEBIE

Closes #1779
2014-12-12 14:39:51 -08:00
Moxie Marlinspike
08ed90c5ec Split out Util functions. 2014-11-12 15:42:43 -08:00
Moxie Marlinspike
601e233d47 Add account management interface to libtextsecure api 2014-11-12 15:28:08 -08:00
Moxie Marlinspike
d902c12941 Break core ratchet out into libaxolotol.
1) Break the core cryptography functions out into libaxolotol.

2) The objective for this code is a Java library that isn't
   dependent on any Android functions.  However, while the
   code has been separated from any Android functionality,
   it is still an 'android library project' because of the
   JNI.
2014-10-20 12:10:02 -07:00
Jake McGinty
da0eb5a779 no longer load a recipient for each filter text
// FREEBIE
2014-06-24 20:33:04 -07:00
agrajaghh
0f9a6e6296 add custom phone number type 2014-06-16 15:27:33 -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
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
Lukas Barth
7c9282f306 Cache circle cropped photos on Recipient. 2014-06-11 12:33:57 -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
Jake McGinty
542e1984c1 sanely handle duplicate contacts in db
// FREEBIE
2014-05-16 09:16:20 -07:00
agrajaghh
e9a50ce6c3 fix empty contact filter 2014-04-13 15:00:04 +02: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
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
a2fe8a9d5c Make default group avatar icon actually work. 2014-03-02 13:22:02 -08:00
Benedict Pregler
e0394b4481 a little typo mistake 2014-03-02 13:22:02 -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
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
5810062b25 group action conversation items, tweaks to single contact selection 2014-02-16 21:09:15 -08:00
Jake McGinty
9b41675f8f single contact selection 2014-02-14 16:21:48 -08:00
Jake McGinty
9cd5a67ec5 directory changes to use number instead of token, group ui progress 2014-02-12 11:35:04 -08:00
Jake McGinty
9fd2c4753e ui wip 2014-01-25 23:39:56 -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
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
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
61d4192798 Refactor ContactPhotoFactory to handle changing local contact URIs. 2012-12-30 16:42:33 -08:00
Moxie Marlinspike
9939830551 Refactor recipient access.
1) Refactor recipient class to support asynchronous loading operations.

2) Refactor recipient factory to simplify recipient access.

3) Consoliate everything into one recipient provider that is capable of
doing async lookups and intelligent caching.
2012-12-24 08:40:37 -08:00
Moxie Marlinspike
3a8d29e279 Major reorganization of view/model interactions.
Mostly, the inheritance graph for MessageRecord/MmsMessageRecord was
all messed up, and each class was overloaded for things it shouldn't
have been.

1) Broke MessageRecord/MmsMessageRecord up into: DisplayRecord, ThreadRecord,
MessageRecord, SmsMessageRecord, NotificationMmsMessageRecord, and
MediaMmsMessageRecord.

2) Updated all the adapters/views to keep pace with that change.
2012-10-28 18:24:21 -07:00
Moxie Marlinspike
0b3e939ac8 Improve support for "me" contact.
1) Add >= ICS profile support (the system-supported "me" contact).

2) Improve <= Gingerbread support for me contact by auto-detecting
contacts that have the same number as the SIM card.

3) Tie in identity key import/export support to the "me" contact.

4) Don't display a "me" selection option in preference if it can
be auto-detected.

5) Refactor out the ContactAccessorNewApi back into the base class.
2012-10-22 19:17:08 -07:00
Moxie Marlinspike
3d3db421d3 Lint warning changes. 2012-09-09 16:10:46 -07:00
Moxie Marlinspike
863e1c6508 Fix the look of tabbed multi-contact selector.
1) Updated to ActionBar style.
2) Split out into fragments.
3) Switch to cursor loaders.
2012-07-20 22:23:25 -07:00
Moxie Marlinspike
8a6a1a5f03 Compare against existing Build.VERSION_CODES.
The 1.X Android versions don't have the 2.X VERSION_CODE
symbols, so comparing against them in order to make 1.6
choices will throw runtime exceptions.
2011-12-21 01:35:33 -05:00
Moxie Marlinspike
bbea3fe1b1 Initial Project Import 2011-12-20 10:20:44 -08:00