Commit Graph

545 Commits

Author SHA1 Message Date
Torsten Grote d0ab16de2d Merge branch 'merge-settings' into 'master'
Fix a couple of bugs in settings

1. SettingsFragment wasn't receiving events because it extended BaseFragment rather than BaseEventFragment
2. Removed broken logic for deciding whether to broadcast a SettingsUpdatedEvent
3. Added the namespace to SettingsUpdatedEvent so listeners can decide whether to react

See merge request !97
2016-02-09 16:55:42 +00:00
akwizgran 3d948ed461 Don't broadcast an event unless settings have changed. 2016-02-08 11:17:45 +00:00
akwizgran b63961727d Removed unused injection. 2016-02-05 18:48:42 +00:00
akwizgran 408776f5d3 Use settings manager. 2016-02-05 18:46:18 +00:00
akwizgran bdc17dfc8e Fixed a couple of bugs in settings. 2016-02-05 18:22:37 +00:00
akwizgran 26fecba77f Don't use ReferenceManager for forum post author. #243 2016-02-03 21:25:34 +00:00
akwizgran 78bc198b33 Don't throw exception is forum post is anonymous. #242 2016-02-03 20:56:17 +00:00
str4d 4d7a23779a Rename crypto methods and constants for Bluetooth key agreement 2016-02-02 02:45:49 +00:00
akwizgran 35090f4d0e Bumped expiry date to 1 March 2016. 2016-02-01 15:16:15 +00:00
akwizgran 2584fb52b9 Don't use external storage for crash/test reports. 2016-01-28 16:29:06 +00:00
akwizgran 1589279c2f Merge branch '229-transport-client' into 'master'
Transport properties client. #229

This branch moves support for exchanging transport properties from the sync layer to the client layer.

Local properties are stored in an unshared group. When a contact is added, the latest local properties are copied into a group shared with the contact. Whenever the local properties are updated, they're copied into the groups shared with all contacts.

The transport update messages include a unique device ID that prevents collisions between local and remote messages, and will be used in future for multi-device support.

See merge request !80
2016-01-28 15:05:00 +00:00
akwizgran 857abd6c11 Merge branch '82-identicons' into 'master'
Identicons

Closes #120. Part of #82.

I pulled in the identicon code because there is no published library, and also because when I used it for Bote I ended up modifying the code somewhat for my purposes; I expect the same to happen here.

I am not sure what information should be used to seed the identicon. I originally thought of using the public key, but that seemed to change the identicon every single page load (obviously the representation wasn't consistent). Then I tried using the `ContactId`, which was fine until I got to adding an identicon to `AuthorView`: activities that use it are only passed (via Intent) a name, not anything else. Hence `AuthorView` identicons are currently inconsistent with the contact list and conversations.

See merge request !51
2016-01-27 17:49:52 +00:00
akwizgran 88475bdd54 Transport properties client. #229 2016-01-27 12:51:55 +00:00
akwizgran ea02caf577 Don't use FLAG_ACTIVITY_CLEAR_TASK on API < 11. 2016-01-27 12:51:00 +00:00
str4d 90eded1421 Make identicons round
This commit renames identicons to avatars in field names, and uses an ImageView
derivative to show the identicons, which should make implementing #214 easier.
2016-01-26 20:21:35 +00:00
str4d 9318a50cb7 Migrate LocalAuthorSpinnerAdapter to XML, add identicons 2016-01-26 18:34:03 +00:00
str4d 35c59fdb39 Migrate AuthorView to XML, add identicon 2016-01-26 18:34:03 +00:00
str4d 88d81634ca Add identicons to conversations 2016-01-26 18:34:02 +00:00
str4d e62d60ff52 Add identicons to contact list 2016-01-26 18:34:02 +00:00
akwizgran d69a242f19 Merge branch '30-navigation-drawer-rebased' into 'master'
Navigation drawer (squashed and rebased).

This is @ernir's work on #30 and #181, rebased onto master with recent changes to ConversationActivity and ForumListActivity ported to the respective fragments.

See merge request !75
2016-01-22 10:33:25 +00:00
Ernir Erlingsson dae29eecce Navigation drawer (squashed and rebased). 2016-01-21 16:49:21 +00:00
akwizgran 7e020454bf Show Bluetooth address from Settings.Secure. 2016-01-21 16:14:21 +00:00
akwizgran cdfaa39338 Update contact list when contacts are deleted. #227
Also removed unnecessary adapter notifications in various places.
2016-01-20 16:08:22 +00:00
akwizgran 82cf12040f Contact manager hooks. #209 2016-01-20 14:43:46 +00:00
akwizgran 33ef09a6bf Implement Service interface rather than extending it.
Whether or not a class needs to run as a service is an implementation decision.
2016-01-20 14:43:46 +00:00
akwizgran 5355951466 Separate the sync layer from its clients. #112 2016-01-20 10:35:09 +00:00
akwizgran f5f572139a Code cleanup. 2016-01-20 10:30:36 +00:00
Santiago Torres 190bb12964 ENH: Replaces transport config with namespaced settings 2016-01-20 00:57:16 -05:00
Torsten Grote f9f3696fb9 run bluetooth adapter enabling/disabling in background thread
also run setting the default preferences in a background thread

Closes #184
2016-01-19 11:10:34 -02:00
Torsten Grote 8b817be076 Offer option to uninstall Briar in a panic event
Due to the nature of how Android app install/uninstall works without
root, this requires manual confirmation after a panic was triggered.

Closes #211
2016-01-18 14:31:10 -02:00
Torsten Grote e98677b2bb Do not show a notification for a conversation we are in 2016-01-15 11:27:22 -02:00
Torsten Grote a1bfe00f1b Remove notification about private messages when viewing messages 2016-01-15 10:53:05 -02:00
Torsten Grote 9aa1bbd1ed Do not show messages as unread when the conversation is open
* Only show them as unread when they arrive out of order
* Mark all messages as read when sending a message
2016-01-14 11:49:34 -02:00
Torsten Grote c8d0e64542 Delete database as panic response even when signed out
The method `runOnDbThread()` depends on an executor
that's created by roboguice at startup.
It requires to be signed in, so use a different thread instead.
2016-01-13 16:49:44 -02:00
akwizgran 42d1f6ded0 Use verbs instead of yes/no for lost password dialog. 2016-01-13 17:17:45 +00:00
Torsten Grote 63d87ae085 Support for Destructive Panic Actions
PanicKit does distinguish between two kinds of panic responses:

* default responses such as logging out which are non-destructive and
  do not require user interaction, so that the basics work without
  configuration
* destructive responses such as deleting user data. These require
  some sort of authentication to make sure they are not triggered
  by malicious apps

The second type of responses is implemented with this commit.

Authentication is done by comparing the package name
which is very weak. It requires the user to opt-in to
destructive responses and to configure from which app
to receive those (since there might be many different panic
trigger apps).

While possible to uninstall an app and install one with the same
package name afterwards, this always triggers notifications to
the user (if the attacker does not have root access).

Still that is no sufficient security for Briar's requirements,
so that TrustedIntents are used as well to make sure that the
app sending the destructive trigger is signed by a signing key
that we specified before. Currently, that is the one from the
GuardianProject and from IilabEngineering who does the Amnesty
International Panic App.

The responsibility of checking that the panic TRIGGER is
legitimate lies with the app responding to the trigger, so Briar
in this case. This commit checks whether the TRIGGER comes from
a trusted app before performing destructive actions,
but does perform the default action even when triggered from
untrusted apps.

Closes #210
2016-01-12 11:05:14 -02:00
Torsten Grote e603b4f60e Implemented Sign Out as a first PanicKit Response
This closes #204
2016-01-12 10:49:14 -02:00
akwizgran 25c9cff8d6 Merge branch '112-transport-properties-manager' into 'master'
Transport properties manager facade, key manager refactoring. #112

Refactoring for #112: decouple the invitation and plugin code from the database with a TransportPropertiesManager facade (which will become a BSP client), and move some key management logic from the invitation code to the KeyManager. Update the integration tests to use the new FooManager facades.

See merge request !49
2016-01-12 11:35:18 +00:00
akwizgran 7e48267f92 Consistent styling for setup and password activities.
Also removed some unused code from BaseActivity.
2016-01-08 13:22:33 +00:00
akwizgran 90214c7f93 Removed Read/WritePrivateMessageActivity. #208 2016-01-08 13:21:42 +00:00
Torsten Grote 0a11c0632f introduce a hideSoftKeyboard() method and use it 2016-01-07 19:31:06 -02:00
Torsten Grote 4460d69a06 Improve PasswordActivity by
* 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'
2016-01-07 14:15:57 -02:00
akwizgran 6e26391e03 Bumped expiry date to 1 Feb 2016. 2016-01-06 12:40:11 +00:00
akwizgran b7860ba46c Merge branch 'use-briarrecyclerview-in-conversation-view' into 'master'
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
2016-01-04 14:17:10 +00:00
akwizgran 033c937640 Merge branch '200-duplicate-entries-in-contactlist' into 'master'
Fix contacts duplicating itself when pressing back button in conversation view.

Normally, this should be handled by the `SortedList` in the `RecyclerView`, but it isn't for some reason. Instead of spending way too much time on finding out why, I am clearing the adapter instead (on each `activity.onResume()`) as it was done before.

Closes #200

See merge request !42
2016-01-04 14:11:59 +00:00
akwizgran 805bf39ec8 Created TransportPropertyManager facade. 2016-01-04 12:56:06 +00:00
Torsten Grote 027b3cd33a Fix contacts duplicating itself when pressing back button in conversation view
This is done by update existing items rather than just adding them,
because different timestamps in added items change the sorting criteria
and cause duplicates in the SortedList.

Closes #200
2015-12-31 14:17:14 -02:00
Torsten Grote a4437a729a 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.
2015-12-31 13:14:33 -02:00
akwizgran 50b941e50e Show strength meter when password entry has focus.
Also fixed some IME action issues on Android 2.3.
2015-12-31 12:00:42 +00:00
str4d 9b1dacfe97 Use TextInputLayout from the Design Support Library to display errors 2015-12-31 11:36:59 +00:00