briar issueshttps://code.briarproject.org/groups/briar/-/issues2018-06-12T11:32:35Zhttps://code.briarproject.org/briar/briar/-/issues/195Notification about private messages should go away when viewing messages2018-06-12T11:32:35ZTorsten GroteNotification about private messages should go away when viewing messagesWhen viewing the private messages, the notification about these private messages should automatically be dismissed.When viewing the private messages, the notification about these private messages should automatically be dismissed.Milestone BTorsten GroteTorsten Grotehttps://code.briarproject.org/briar/briar/-/issues/196Mark Private Messages As Read Properly2018-06-12T11:32:35ZTorsten GroteMark Private Messages As Read ProperlyThere's some circumstances in conversations where private private messages are not marked as read properly.
This is easy to spot when using the code from !36 which shows unread messages in a different color to make it easier to spot d...There's some circumstances in conversations where private private messages are not marked as read properly.
This is easy to spot when using the code from !36 which shows unread messages in a different color to make it easier to spot delayed messages in a conversation.Milestone Fakwizgranakwizgranhttps://code.briarproject.org/briar/briar/-/issues/198Refactor out pattern of list with empty view and progress wheel2018-06-12T11:32:35ZTorsten GroteRefactor out pattern of list with empty view and progress wheelWe have many lists that need an empty view to be shown when no elements exist and a progress wheel when elements are loaded. This could be re-factored out since it is a common pattern.We have many lists that need an empty view to be shown when no elements exist and a progress wheel when elements are loaded. This could be re-factored out since it is a common pattern.Milestone ATorsten GroteTorsten Grotehttps://code.briarproject.org/briar/briar/-/issues/199Use Floating Action Button (FAB) for adding new contact2018-06-12T11:32:35ZTorsten GroteUse Floating Action Button (FAB) for adding new contactCurrently, there's an icon in the action bar for adding new contacts. However, this action is a prime candidate to be implemented with a Floating Action Button (FAB).
There's basically two options for the implementation:
* [Design Su...Currently, there's an icon in the action bar for adding new contacts. However, this action is a prime candidate to be implemented with a Floating Action Button (FAB).
There's basically two options for the implementation:
* [Design Support Library](http://android-developers.blogspot.com.br/2015/05/android-design-support-library.html)
* @str4d's [FloatingActionButton library](https://github.com/str4d/android-floating-action-button)Milestone ATorsten GroteTorsten Grotehttps://code.briarproject.org/briar/briar/-/issues/200Duplicate entries in ContactList2018-06-12T11:32:35ZakwizgranDuplicate entries in ContactListAfter merging !38 I've started to see duplicate entries in the contact list. To reproduce:
* Touch a contact to enter ConversationActivity
* Receive a message from the contact
* Wait a minute so the time shown for the new message is...After merging !38 I've started to see duplicate entries in the contact list. To reproduce:
* Touch a contact to enter ConversationActivity
* Receive a message from the contact
* Wait a minute so the time shown for the new message is different from the time shown for the previous message
* Press the back button
* Two entries are shown in the contact list
* Repeat to create more duplicates
I'm guessing this might have something to do with RecyclerView recycling views that should have been replaced.Milestone ATorsten GroteTorsten Grotehttps://code.briarproject.org/briar/briar/-/issues/201Messages that arrive while a conversation is open should not be shown as unread2018-06-12T11:32:35ZakwizgranMessages that arrive while a conversation is open should not be shown as unreadRelated: #195, #196.Related: #195, #196.Milestone ATorsten GroteTorsten Grotehttps://code.briarproject.org/briar/briar/-/issues/202Extend ContactListActivity to show which contacts are linked with which ident...2018-06-12T11:32:35Zstr4dExtend ContactListActivity to show which contacts are linked with which identity/identities> [@akwizgran] the main use case is posting to forums/blogs under a different identity from the one(s) you use with your contacts
> [@akwizgran] following on from that is a secondary use case: add contacts using an identity that was i...> [@akwizgran] the main use case is posting to forums/blogs under a different identity from the one(s) you use with your contacts
> [@akwizgran] following on from that is a secondary use case: add contacts using an identity that was initially created for posting to forums/blogs - for example, if you meet someone irl who knows you via your forum/blog handle
> [@akwizgran] they could also be used for grouping contacts into 'circles' but we haven't gone into that in detail yet
> [@str4d] Right, was about to say that the contacts page should expose that information somehow.
> [@akwizgran] yup, good point
> [@akwizgran] see also #34
> [@str4d] If the intent of identities is for them to appear (at least initially) to be different people, the UI needs to remind the user which of their contacts know which of their identitieshttps://code.briarproject.org/briar/briar/-/issues/203Remove Tor binaries from repo2018-06-12T11:32:34ZakwizgranRemove Tor binaries from repoThe Tor binaries (and Tor's GeoIP database) need to be updated regularly - this makes the repo enormous. Remove the binaries from the repo and find a convenient way of downloading and verifying them during the build process - possibly gr...The Tor binaries (and Tor's GeoIP database) need to be updated regularly - this makes the repo enormous. Remove the binaries from the repo and find a convenient way of downloading and verifying them during the build process - possibly gradle-witness?
We may want to remove the binaries from the repo's history too, but that will need to be co-ordinated among all developers to avoid git breakage.Milestone Cakwizgranakwizgranhttps://code.briarproject.org/briar/briar/-/issues/204Support PanicKit2018-06-12T11:32:34ZakwizgranSupport PanicKitThe Guardian Project has developed a framework that allows a panic button app to broadcast an Intent that other apps can react to. Briar should respond by signing out.
We should provide an option to delete the user's account as well, ...The Guardian Project has developed a framework that allows a panic button app to broadcast an Intent that other apps can react to. Briar should respond by signing out.
We should provide an option to delete the user's account as well, but this was split out into #210.Milestone ATorsten GroteTorsten Grotehttps://code.briarproject.org/briar/briar/-/issues/205Unit tests for KeyManagerImpl and TransportKeyManager2018-06-12T11:32:34ZakwizgranUnit tests for KeyManagerImpl and TransportKeyManagerAn exciting way to become familiar with some core code.An exciting way to become familiar with some core code.Milestone FTorsten GroteTorsten Grotehttps://code.briarproject.org/briar/briar/-/issues/206Use Material Design and Standard Practises for SettingsActivity2018-06-12T11:32:34ZTorsten GroteUse Material Design and Standard Practises for SettingsActivityCurrently, the SettingsActivity is written by hand and difficult to extent. It does not use Material Design like the rest of the application (will).
It should be rewritten using [best practices](https://developer.android.com/guide/top...Currently, the SettingsActivity is written by hand and difficult to extent. It does not use Material Design like the rest of the application (will).
It should be rewritten using [best practices](https://developer.android.com/guide/topics/ui/settings.html).
If for some reason, the preferences should not be stored in the default Android location, a custom PreferenceManager needs to be implemented.Milestone Chttps://code.briarproject.org/briar/briar/-/issues/207SetupActivity UI improvements2018-06-12T11:32:34ZErnir ErlingssonSetupActivity UI improvements1. The password strength bar should be over the password input fields otherwise it will be partially or completely obscured by the soft keyboard (depending on the device). The user should not have to scroll down to see the meter.
2. S...1. The password strength bar should be over the password input fields otherwise it will be partially or completely obscured by the soft keyboard (depending on the device). The user should not have to scroll down to see the meter.
2. Styling! The "Create Account" button has no style at all and does not really fit with the rest. Re-evaluate margins/paddings and consider using the EditText hints rather than TextView headers that makes scrolling necessary for smaller devices. Milestone DTorsten GroteTorsten Grotehttps://code.briarproject.org/briar/briar/-/issues/208Remove ReadPrivateMessageActivity and WritePrivateMessageActivity2018-06-12T11:32:34ZakwizgranRemove ReadPrivateMessageActivity and WritePrivateMessageActivityDo you use them? No, neither does anyone else.Do you use them? No, neither does anyone else.Milestone Aakwizgranakwizgranhttps://code.briarproject.org/briar/briar/-/issues/209Ensure clients can reliably respond to contacts being added/removed2018-06-12T11:32:34ZakwizgranEnsure clients can reliably respond to contacts being added/removedAdding or removing a contact may trigger actions by sync clients (such as adding or removing a private group shared with the contact).
If the app crashes immediately after the DB transaction that adds/removes the contact is committed,...Adding or removing a contact may trigger actions by sync clients (such as adding or removing a private group shared with the contact).
If the app crashes immediately after the DB transaction that adds/removes the contact is committed, event handlers registered by clients may not be run.
Possible solutions:
* Clients could check the contact list at startup and perform any actions needed to bring their own state back into step with the contact list.
* Clients could register handlers to be run in the same DB transaction as the add/remove event.Milestone Aakwizgranakwizgranhttps://code.briarproject.org/briar/briar/-/issues/210PanicKit Support for Destructive Actions2018-06-12T11:32:34ZTorsten GrotePanicKit Support for Destructive ActionsBased on !52, PanicKit support should be extended to support connecting/disconnecting panic trigger apps and verify that trigger actions come only from trusted apps using the trustedIntents library from the GuardianProject.
The first ...Based on !52, PanicKit support should be extended to support connecting/disconnecting panic trigger apps and verify that trigger actions come only from trusted apps using the trustedIntents library from the GuardianProject.
The first destructive response should be to purge all settings and the entire database. This should be configurable.Milestone ATorsten GroteTorsten Grotehttps://code.briarproject.org/briar/briar/-/issues/211PanicKit Response: Uninstall Briar2018-06-12T11:32:34ZTorsten GrotePanicKit Response: Uninstall BriarIt is possible to not only purge all data, but also to install Briar completely, so that there are no (obvious) clues that it was installed and used at all.
Uninstalling should be added as another configurable Panic Response.It is possible to not only purge all data, but also to install Briar completely, so that there are no (obvious) clues that it was installed and used at all.
Uninstalling should be added as another configurable Panic Response.Milestone BTorsten GroteTorsten Grotehttps://code.briarproject.org/briar/briar/-/issues/213Use @Test annotation to test for exceptions being thrown2018-06-12T11:32:34ZakwizgranUse @Test annotation to test for exceptions being thrownLots of tests currently use this idiom:
```
@Test
public void testFoo() {
try {
foo();
Assert.fail();
} catch (FooException expected) {
// Expected
}
}
```
They should instead use JUnit...Lots of tests currently use this idiom:
```
@Test
public void testFoo() {
try {
foo();
Assert.fail();
} catch (FooException expected) {
// Expected
}
}
```
They should instead use JUnit's support for catching exceptions:
```
@Test(expected = FooException.class)
public void testFoo() throws FooException {
foo();
}
```Milestone ATorsten GroteTorsten Grotehttps://code.briarproject.org/briar/briar/-/issues/215Panic button delete action doesn't remove DB password2018-06-12T11:32:34ZakwizgranPanic button delete action doesn't remove DB passwordSteps to reproduce:
* Choose Ripple as the panic button app
* Enable the delete account action
* Sign out of Briar
* Trigger Ripple's panic button
* Re-launch Briar from the recents menu
* The password prompt is shown
* Sign in
...Steps to reproduce:
* Choose Ripple as the panic button app
* Enable the delete account action
* Sign out of Briar
* Trigger Ripple's panic button
* Re-launch Briar from the recents menu
* The password prompt is shown
* Sign in
* The dashboard is shown, then it disappears
* Re-launch Briar from the recents menu
* This time the setup screen is shown, as expected
My guess is that the shared preferences DB containing the password-encrypted database key isn't being deleted by the panic action. But after the first re-launch, Briar detects that the main database is missing and deletes the shared preferences DB.
Tested on a Samsing Galaxy Nexus (Android 4.3).Milestone ATorsten GroteTorsten Grotehttps://code.briarproject.org/briar/briar/-/issues/216Do disabling of Bluetooth Adapter in Background Thread2018-06-12T11:32:34ZTorsten GroteDo disabling of Bluetooth Adapter in Background ThreadApparently disabling the Bluetooth adapter causes Android to write to disk:
```
android.os.StrictMode$StrictModeDiskWriteViolation: policy=287 violation=1
at android.os.StrictMode$AndroidBlockGuardPolicy.onWriteToDisk(StrictMode.jav...Apparently disabling the Bluetooth adapter causes Android to write to disk:
```
android.os.StrictMode$StrictModeDiskWriteViolation: policy=287 violation=1
at android.os.StrictMode$AndroidBlockGuardPolicy.onWriteToDisk(StrictMode.java:1120)
at android.database.sqlite.SQLiteConnection.applyBlockGuardPolicy(SQLiteConnection.java:1047)
...
at com.android.server.BluetoothManagerService.persistBluetoothSetting(BluetoothManagerService.java:298)
at com.android.server.BluetoothManagerService.disable(BluetoothManagerService.java:497)
```
which is caused by at least:
```
at org.briarproject.android.invitation.AddContactActivity.disableBluetooth(AddContactActivity.java:336)
```
So we should run all enabling/disabling of Bluetooth in a background thread.https://code.briarproject.org/briar/briar/-/issues/217Tor Connectivity Issues2018-06-12T11:32:34ZTorsten GroteTor Connectivity IssuesI have issues with Briar contacts seeing each other online. It works fine after adding the contacts. But after some time, when they have different IP addresses in the local network, they never turn up as online.
Connecting through Tor...I have issues with Briar contacts seeing each other online. It works fine after adding the contacts. But after some time, when they have different IP addresses in the local network, they never turn up as online.
Connecting through Tor does not seem to work. They try to connect to the proper hidden services addresses, but in the log there is just this without further information:
```
org.briarproject I/TorPlugin: Could not connect to [bla].onion
```
Maybe, the tor hidden service performance patch is missing from the latest tor binaries? Without that patch we used to get a lot of connection failures.
Maybe this can be investigated along with #203.Milestone Bakwizgranakwizgran