briar issueshttps://code.briarproject.org/briar/briar/-/issues2018-06-12T11:32:34Zhttps://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/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/214User Avatars2021-05-05T16:17:22ZTorsten GroteUser AvatarsFollowing support for Identicons in #120, we want to give users the possibility to use their own avatar to be recognized by their peers.
We should bear in mind the potential for impersonation, especially in forums, where users will see ...Following support for Identicons in #120, we want to give users the possibility to use their own avatar to be recognized by their peers.
We should bear in mind the potential for impersonation, especially in forums, where users will see posts from known and unknown identities mixed together. Anyone can create a throwaway identity with the same nickname (and avatar, if we allow them) as another user, which is different from what people are used to in centralised systems.
One possibility would be to show avatars *only* for known/verified identities and use identicons for unknown identities and those users who did not specify an avatar.
Unverified contacts should be distinguished from verified contacts in some way. They could use different identicons or have a little badge on their image indicating the trust-level similar to the little green briar icons we use at the moment.Profile picturesIvanaIvana2021-01-31https://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/212PanicKit Response: Send Message(s)2020-11-21T19:35:45ZTorsten GrotePanicKit Response: Send Message(s)It is possible to not only purge all data (#210), but also to send messages in a panic event to preselected contacts. The message text needs to be specified at setup time.
Bonus points for allowing the user's location to be included in ...It is possible to not only purge all data (#210), but also to send messages in a panic event to preselected contacts. The message text needs to be specified at setup time.
Bonus points for allowing the user's location to be included in the message. Since we might not want to ask for the location permission, it would be nice if the Panic Trigger App could provide that in the trigger intent.https://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/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/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/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/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/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/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/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/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/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/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/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/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/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/197Improve readability/usability of transport status bar2022-11-18T16:48:47Zstr4dImprove readability/usability of transport status bar* The green text isn't very readable to me. IMHO the text should stay the same primary text color, and only the icon should change to green. The meaning is not altered in the user's eyes.
* "Wi-Fi" should probably be "Local Wi-Fi" to en...* The green text isn't very readable to me. IMHO the text should stay the same primary text color, and only the icon should change to green. The meaning is not altered in the user's eyes.
* "Wi-Fi" should probably be "Local Wi-Fi" to ensure the user understands it refers to reaching other users on the same local network.
* Is "Internet" using the open internet, or Tor? I would have assumed there would be separate entries for each.
Related: #185