* force decline when two of our own identities are introduced to each
other
* throw away introduction requests to the same identity
(impossible to trigger from UI)
Closes#284
When devices' clocks are out of sync, it is possible that a response is
shown before the request. This commit makes sure that the timestamp of
responses is always later than the last message in the conversation.
Some wording could be misunderstood to thing introductions were
successful even though they were not. That has been clarified.
A new database transaction was created when getting contacts and local
transport properties. This has been changed to re-use the existing
transaction.
Also addresses minor issues found in review.
@color/briar_text_primary is used in a lot of places other than the settings screen - if we want to use grey text in the settings screen we'll need to find another way.
Also fixed some misspelled resource names and included the colours from the Briar palette in color.xml.
This commit renames identicons to avatars in field names, and uses an ImageView
derivative to show the identicons, which should make implementing #214 easier.
* removing screen border visible on small screens
* showing noticeable error message on wrong password input
* showing keyboard again after entering wrong password
* making lost password link easier to recognize as link
* renaming keyboard toggle method from 'hide' to 'toggle'
Use new BriarRecyclerView in ConversationView
This now handles progress bar and empty view itself.
With this commit, it also scrolls down on layout changes like when
keyboard is opened.
See merge request !46
Create custom BriarRecyclerView and use it for the contact list.
It is a common pattern to have a list with an empty view and a progress bar.
This commit introduces a custom BriarRecyclerView and uses it for the
contact list.
No more manually hiding and showing empty views and progress bars is
necessary when using the new BriarRecyclerView instead of RecyclerView.
Please note that this conflicts with !44 at the moment and needs to be
implemented for !36 once merged.
Closes#198
See merge request !45
Overhauled Conversation View with Message Bubbles
The Conversation View now uses a RecyclerView with conversation bubbles
in alternating colors and vector drawables to indicate message state.
The conversation bubbles have been taken from Telegram
and can be replaced by a UX designer later.
There's also a special bubble for unread messages,
so they are not overlooked when they come in delayed.
This commit also addresses #9, because message text can
now be selected and copied. This is done by using
android:textIsSelectable="true"
which only works for API level 11 or higher.
If we want copy and paste on lower API levels,
additional measures have to be implemented.
See merge request !36
It is a common pattern to have a list with an empty view and a progress bar.
This commit introduces a custom BriarRecyclerView and uses it for the
contact list.
No more manually hiding and showing empty views and progress bars is
necessary when using the new BriarRecyclerView instead of RecyclerView.
Please note that this conflicts with !44 at the moment and needs to be
implemented for !36 once merged.
Closes#198
The button hides itself when you scroll down the list of contacts
and shows again when you scroll up.
To properly color the button, the accent color has been defined.
It uses the same color as the action bar (primary color).
I leave it to a UX designer to adapt the color scheme.
Please note that the design support library was used.
It includes the app-compat library, so this has been removed
from the `build.gradle` file.
Closes#199
properly notify the view adapter of dataset changes
in order to avoid invalidating the entire dataset when not absolutely necessary.
This change also shows unread messages in a different color,
so users do not fail to notice delayed messages.
It now uses conversation bubbles in alternating colors
and vector drawables to indicate message state.
The conversation bubbles have been taken from Telegram
and can be replaced by a UX designer later.
This commit also addresses #9, because message text can
now be selected and copied. This is done by using
android:textIsSelectable="true"
which only works for API level 11 or higher.
If we want copy and paste on lower API levels,
additional measures have to be implemented.
Layout tweaks for ConversationActivity.
Centre the progress wheel and empty list message, hide the empty list message until the list has loaded.
See merge request !26
and indicate which transports are currently available.
The icons have been chosen from the official material icons and might be
replaced later with icons that better represent the given transport.
Please note that I used vector drawables which will be automatically
converted at build time to raster graphics.
Closes#96
Improve Adding Contacts
These changes provide more detailed instructions for adding contacts.
Users were confused by the process of adding a contact for the first time.
This change adds additional explanation and a picture of what is going on.
Closes#87
This change also shows the current step and the total number of steps when adding a contact.
Closes#33
The UI was transferred into XML files and lots of redundant code was deleted such as the custom CodeEntryView.
Please note that I did not implement a countdown for Bluetooth discoverability (#71), because of the way how the state machine resets the entire content view of the activity. This should probably be refactored to use fragments which would make the code cleaner and a permanent progress bar easier to implement.
See merge request !15
Users were confused by the process of adding a contact for the first time.
This change adds additional explanation and a picture of what is going on.
It also moves part of the UI into XML files.
Closes#87
The text of the startup failure notification is unhelpful due to lack of
space. Touching the notification now launches an activity that gives details
of the problem and what can be done about it.
Closes#38