Commit Graph

156 Commits

Author SHA1 Message Date
Torsten Grote
0b0cae06ae Don't show introduction onboarding again no matter how dismissed 2016-10-04 14:51:37 -03:00
Torsten Grote
401abf2c0c Add first onboarding screen
When the user enters a private conversation after adding her second
contact, an onboarding screen will be shown highlighting the possibility
of introducing the contacts to each other.
2016-09-26 10:42:20 -03:00
Torsten Grote
d5beca5351 Port Signal's emoji implementation to Briar
Add functionality to save and restore recently used Emojis

Update emoji and add new categories based on AOSP's XML file
2016-09-23 17:18:18 +01:00
akwizgran
042050453a Merge branch '359-introduction-message-can-be-overlooked' into 'master'
Attach optional messages to invitations in Conversation view

![device-2016-08-29-115823](/uploads/e819324046b8a37ff06da7300046369c/device-2016-08-29-115823.png)![device-2016-08-29-115834](/uploads/051b4b64938bfa6f3ed610db28909865/device-2016-08-29-115834.png)

Closes #359

See merge request !299
2016-09-01 11:43:18 +00:00
Torsten Grote
4518f59a54 Improving notices with messages attached in conversation view 2016-08-29 12:01:51 -03:00
akwizgran
dbdf567d4e Overhaul notifications to fix various bugs.
Fixes #539, #564 and #568.
2016-08-20 18:40:59 +01:00
Torsten Grote
dd0d23359b Prevent empty state messages from showing briefly
When we clear a list in onPause(), the proper behavior is that the empty state
message is shown, because the list is indeed empty.

However, we will reload the list content again in onResume(),
so the fix chosen in this commit is to force showing the progress bar
right after clearing the list.

Closes #576
2016-08-03 19:12:53 -03:00
Torsten Grote
a4cf91fba5 Use Inheritence for shared Forum and Blog Sharing Code 2016-08-03 18:46:20 -03:00
Torsten Grote
e4f5d8e6e7 Show Blog Invitations
This refactors the forum invitation code,
so it can be used by both: forums and blogs.
2016-08-03 13:01:25 -03:00
Torsten Grote
a552d1b6a6 Show blog invitation requests and responses in private conversation 2016-08-03 13:01:24 -03:00
Torsten Grote
31cd6e8958 Fix NPE in ContactListFragment
Closes #562
2016-08-01 16:26:01 -03:00
akwizgran
d096c1fead Merge branch '472-forum-no-message-for-the-inviter-if-an-invitee-accepts-or-declines' into 'master'
Show Responses to Forum Invitations in Private Conversation

Closes #472

See merge request !257
2016-08-01 13:46:30 +00:00
Torsten Grote
15d139afd4 Pause Periodic List Refresh when View is not Visible
Closes #553
2016-08-01 14:35:51 +01:00
Torsten Grote
64b596d0f9 Show Responses to Forum Invitations in Private Conversation
Closes #472
2016-08-01 12:13:51 +01:00
Torsten Grote
3d22d43868 Use Client Layer Events in ContactListFragment
This prevents trying to access the same group metadata in different groups.
Also, the conversation does not need to be reloaded once introduction messages arrive.

Closes #535
2016-07-28 14:30:18 -03:00
str4d
67aa7c3269 Merge branch '461-forum-invitation-can-not-be-accepted-if-forum-already-added' into 'master'
Show all Forum Invitations, not only the first one to prevent cut-offs and forks

This MR solves the problems outlined in #461 by always showing forum invitations, even if the user already subscribed to the forum.

Available Forums have been renamed to Forum Invitations in the UI:

![device-2016-07-07-144141](/uploads/9c8d06decdd19117250e3faca0c38192/device-2016-07-07-144141.png)
![device-2016-07-07-144150](/uploads/9803f567c962a721b24d79359974a29f/device-2016-07-07-144150.png)

Closes #461

See merge request !241
2016-07-12 23:34:22 +00:00
str4d
ee68e35b36 Merge branch '360-feedback-for-introducer-when-introduction-request-is-sent' into 'master'
Show Snackbar after introduction request has been sent

Closes #360

See merge request !239
2016-07-12 05:33:09 +00:00
Ernir Erlingsson
3a3d717884 Merge branch '327-empty-state-design' into 'master'
Simple Empty State Messages

This MR implements very basic and simple empty state messages for the
current features.

This is how it looks (note that the contact add FAB will be removed soon):

![Screenshot_20160629-125146](/uploads/4c6a8be041cc48b0aba165dd507453d5/Screenshot_20160629-125146.png)
![device-2016-06-29-130834](/uploads/821677074d7d3e6435574a0711f3a0a7/device-2016-06-29-130834.png)
![Screenshot_20160629-125138](/uploads/a39a465db51f8e009ab0b6ee34d4a7e7/Screenshot_20160629-125138.png)
![Screenshot_20160629-125853](/uploads/1dab114bbe7ba379b20a5d298c8fa25c/Screenshot_20160629-125853.png)

Closes #327

See merge request !236
2016-07-08 08:50:10 +00:00
Torsten Grote
6301b2a9a2 Change Available Forums into Forum Invitations 2016-07-07 14:48:28 -03:00
Ernir Erlingsson
b2b97f31f3 Removed the Fab and moved the icon into the toolbar 2016-07-07 15:40:44 +02:00
Torsten Grote
db2d965006 Show Snackbar after introduction request has been sent
Closes #360
2016-07-06 13:58:20 -03:00
Torsten Grote
bc0b226fff Update Timestamps Every Minute
Closes #455
2016-07-06 11:33:25 -03:00
Torsten Grote
37a5d884b8 Simple Empty State Messages
This implements very basic and simple empty state messages for the
current features.

Closes #327
2016-07-04 14:15:52 -03:00
Torsten Grote
d8df9c9955 Make timestamps prettier and more useful 2016-06-30 11:14:12 -03:00
Torsten Grote
123f59cd96 Trim leading and trailing whitespace when displaying messages
Closes #326
2016-06-28 17:01:41 -03:00
Torsten Grote
08cc5500ef Merge branch 'nav-drawer-instance-restore-fix' into 'master'
Fixing fragment instance restore

Alas, it turns out that my neat way of integrating the Fragments into the dependency graph was not without problems. Me and @grote discovered that this presented us with a lot of problems on orientation changes as the Activity is re-created, and therefore parts of the dependency graph. The simplest solution was simply to abandon the idea, i.e. with this branch Fragments are no longer part of the dependency graph. 

See merge request !215
2016-06-21 13:59:56 +00:00
Ernir Erlingsson
ac8c1c0eee synched conversation and forum input 2016-06-21 13:47:33 +02:00
Ernir Erlingsson
8a29207bd0 Fixing fragment instance restore 2016-06-20 21:56:50 +02:00
str4d
9ae64124d3 Factor out generic sharing code from ForumSharingManger 2016-06-18 19:02:48 +12:00
Torsten Grote
6697b06530 Fix NPE in ForumSharingStatusActivity
by checking if a group ID exists.

Closes #430
2016-06-08 10:47:47 -03:00
Torsten Grote
9d826631e9 Add private message to list right away, so eliminate need for an event 2016-06-08 10:31:26 -03:00
Torsten Grote
b26acdf228 Introduce a PrivateMessageReceivedEvent and use it in the Android app 2016-06-08 10:31:26 -03:00
Torsten Grote
b03d0a206b Add Message Dependencies to Database
This adds a new table to the database to hold message dependencies.
It introduces two more message states: pending and delivered
The valid column in the database was renamed to state to better reflect
its new extended meaning.

The DatabaseComponent was extended with three methods for:
* adding dependencies
* getting dependencies of a message
* getting messages that depend on a message (dependents)
* getting messages to be delivered (by startup hook)
* getting pending messages to be possibly delivered (by startup hook)

In order to reflect the new states, things that were previously true for
VALID messages have been changed to now be true for DELIVERED messages.

Since pending messages should not be available to clients, many database
queries have been modified to only return results for delivered
messages.

All added methods and changes should come with updated unit tests.

Please note that the database version was bumped in this commit.
2016-05-26 13:49:03 -03:00
Torsten Grote
b13bf66165 Add a new activity that shows sharing status of forum
The new activity shows who you are sharing a forum with and who shares a
forum with you. It is accessible from the overflow menu when in a forum.

Closes #398
2016-05-19 11:42:05 -03:00
Torsten Grote
3d25c41e7a Add unread count as bubble to avatar image in contact list
Closes #399
2016-05-18 12:46:38 -03:00
Torsten Grote
6e545d0100 disable exit transition until we have a fix for it 2016-05-13 17:25:14 -03:00
str4d
69026054cd Add bulb to scene transition, make transitionName unique for each contact 2016-05-13 16:51:24 -03:00
akwizgran
b818d6846c Don't close keyboard after sending private message. #355 2016-05-13 11:55:43 +01:00
akwizgran
6873dbc493 UI code cleanup. 2016-05-11 13:52:40 +01:00
Ernir Erlingsson
64d1e25ad7 cleanup 2016-05-11 11:55:16 +02:00
Ernir Erlingsson
5d8ba660c2 merge 2016-05-11 11:50:33 +02:00
Ernir Erlingsson
7b552bde1e phase 1: Activities and Fragments 2016-05-11 11:42:38 +02:00
akwizgran
1724fbe5a9 Merge branch '121-new-forum-sharing-ui' into 'master'
Forum Sharing Client UI

This changes `ShareForumActivity` to use two fragments to facilitate
forum sharing with the new Forum Sharing Client backend.

The `ContactSelectorFragment` allows the user to select a
number of contacts. If there is an ongoing sharing session or the forum
is already shared with the contact, it is disabled in the list. If there
is at least one contact selected, a button appears in the toolbar that
brings the user to the `ShareForumMessageFragment` where the user can
write an optional message to be send along with the invitation.

After sending an invitation, the user is brought back to the forum that
she shared and there is a snackbar showing up briefly to indicate the
successful invitation.

The invitation is shown along with the message within the private
conversation of each contact. The person who shares the forum also sees
the invitation and the message as outgoing messages that also display
the current status of the messages.

A notification is shown like for other private messages as well.

Please note that this commit does not include a way for users to respond
to invitations. This is in MR !172. Both MRs are based on the new backend in !170.

![device-2016-05-03-182928](/uploads/48499ca4c149a8e7f13f8b28a24537ad/device-2016-05-03-182928.png)
![device-2016-05-03-182855](/uploads/5f49c43bf8f39780862247848a5b9c27/device-2016-05-03-182855.png)

See merge request !171
2016-05-11 09:13:07 +00:00
Torsten Grote
3a9d66a85f Forum Sharing Client UI
This changes `ShareForumActivity` to use two fragments to facilitate
forum sharing with the new Forum Sharing Client backend.

The `ContactSelectorFragment` allows the user to select a
number of contacts. If there is an ongoing sharing session or the forum
is already shared with the contact, it is disabled in the list. If there
is at least one contact selected, a button appears in the toolbar that
brings the user to the `ShareForumMessageFragment` where the user can
write an optional message to be send along with the invitation.

After sending an invitation, the user is brought back to the forum that
she shared and there is a snackbar showing up briefly to indicate the
successful invitation.

The invitation is shown along with the message within the private
conversation of each contact. The person who shares the forum also sees
the invitation and the message as outgoing messages that also display
the current status of the messages.

A notification is shown like for other private messages as well.

Please note that this commit does not include a way for users to respond
to invitations.
2016-05-10 21:04:08 -03:00
Torsten Grote
bcfdd848a4 Modernize AvailableForumsActivity
Turn list of available forums into a BriarRecyclerView with XML layout.
Allow to respond to forum invitations from the list of available forums.
The user can either accept or decline an invitation.
2016-05-10 20:07:42 -03:00
Torsten Grote
9bef114c35 Forum Sharing Client backend
This commit replaces the old ForumSharingManagerImpl with a new one
which is based on state machines and the ProtocolEngine.

There is a SharerEngine and a InviteeEngine that take care of state
transitions, messages, events and trigger actions to be carried out by
the ForumSharingManagerImpl. This is all very similar to the
Introduction Client.

The general sharing paradigm has been changed from sharing as a state to
sharing as an action. Now the UI can allow users to invite contacts to
forums. The contacts can accept or decline the invitiation. Also, the
Forum Sharing Manger is notified when users leave a forum.

Closes #322
2016-05-04 17:02:22 -03:00
Torsten Grote
9f9a216305 Prepare for new Forum Sharing Client
Methods for creating, adding and removing forums have been moved to the
`ForumManager`. In order to still handle removing forums properly, a
`RemoveForumHook` has been introduced.

Methods for sharing forums with all current and future contacts have
been removed along with the localGroup where this information was saved.

The `ShareForumActivity` now has the proper label.

The `SessionId` and the `ProtocolEngine` have been moved to the
`clients` package.

This addresses part of #322 and part of what has been discussed in #320.
2016-05-03 11:48:45 -03:00
Torsten Grote
82e1ef0ea6 Add Snackbar and Toolbar Button to Forum List
This commit is a small change that replaces the custom UI elements in
the forum list with a Snackbar and an Toolbar menu.

Addresses one part (2b) of #305
2016-05-02 13:00:19 -03:00
Torsten Grote
9ea7113423 Refactor ContactListAdapter to be reusable for other use cases.
This commit introduces an abstract `BaseContactListAdapter` which provides
most of the adapter logic. The original `ContactListAdapter` extends it to
show date and online status of the contacts.

The new `ContactChooserAdapter` which is used for introductions extends
the `ContactListAdapter` and adds logic for graying out contacts from
different identities than the currently used one.

A new `ContactSelectorAdapter` extends the `BaseContactListAdapter` and
allows to select multiple contacts. It offers a method to return a
collection of all selected `ContactId`s.

This commit also sneaks in an animation when the 'Share Forum' button
is clicked.

Closes #292
2016-04-25 13:50:31 -03:00
akwizgran
9918e93cc4 Merge branch '296-dialog-styling' into 'master'
Use consistent styling for dialogs. #296

Converted all dialogs to use the support library and the Briar theme, so they have a consistent Material Design appearance across all Android versions.

See merge request !152
2016-04-25 15:20:28 +00:00