briar issueshttps://code.briarproject.org/groups/briar/-/issues2021-03-08T13:24:27Zhttps://code.briarproject.org/briar/python-briar-wrapper/-/issues/19Adding contacts remotely does not check return value, hides errors2021-03-08T13:24:27ZTorsten GroteAdding contacts remotely does not check return value, hides errorsIt looks like, the result of the POST request isn't checked here:
https://code.briarproject.org/briar/python-briar-wrapper/-/blob/b8ac26b21dd5b3580d49a582c7b16cebd6c3dc3e/briar_wrapper/models/contacts.py#L37
I found this when debugging...It looks like, the result of the POST request isn't checked here:
https://code.briarproject.org/briar/python-briar-wrapper/-/blob/b8ac26b21dd5b3580d49a582c7b16cebd6c3dc3e/briar_wrapper/models/contacts.py#L37
I found this when debugging why failed pending contacts don't get re-added. Check how the Android UI handles this:
* https://code.briarproject.org/briar/briar/-/blob/1f246637e25a9e53e7b9ec8961e1ad6bf26a7daf/briar-android/src/main/java/org/briarproject/briar/android/contact/add/remote/NicknameFragment.java#L123
* https://code.briarproject.org/briar/briar/-/blob/1f246637e25a9e53e7b9ec8961e1ad6bf26a7daf/briar-android/src/main/java/org/briarproject/briar/android/contact/add/remote/AddContactViewModel.java#L124Wrapper 0.0.7NicoNicohttps://code.briarproject.org/briar/briar/-/issues/1957All conversation messages are marked as read via messaging manager2021-05-05T16:08:47ZakwizgranAll conversation messages are marked as read via messaging managerThe setReadFlag() method is declared in the ConversationClient interface, but only MessagingManagerImpl's implementation of the method is used (except for one integration test).
If clients don't need their own implementations, the metho...The setReadFlag() method is declared in the ConversationClient interface, but only MessagingManagerImpl's implementation of the method is used (except for one integration test).
If clients don't need their own implementations, the method could be moved to the MessagingManager or ConversationManager interface, and the unused implementation in ConversationClientImpl could be removed.
On the other hand, if clients *do* need their own implementations then the implementation in ConversationClientImpl should be updated and we should make sure that ConversationViewModel and (eventually) MessagingControllerImpl call the right client for each message.
Test instructions:
* repeat tests from !1389Self-destructing messagesIvanaIvana2021-01-31https://code.briarproject.org/briar/briar-mailbox/-/issues/125Allow contacts to call status endpoint2022-05-27T12:03:12ZakwizgranAllow contacts to call status endpointTo reduce the cost of connectivity checks, let's make the status endpoint available to contacts and not return any data from it now or in the future.
If we want the owner to be able to access more information about the mailbox's status ...To reduce the cost of connectivity checks, let's make the status endpoint available to contacts and not return any data from it now or in the future.
If we want the owner to be able to access more information about the mailbox's status (eg amount of data waiting to be downloaded) then let's create a new endpoint when the time comes.Mailbox: Manage mailbox connectionsakwizgranakwizgranhttps://code.briarproject.org/briar/briar/-/issues/238Allow messages to be deleted2018-06-12T11:32:33ZakwizgranAllow messages to be deletedAllow messages to be deleted from the database. If a message being deleted is shared, we need to keep enough information about it to avoid syncing it back to life.Allow messages to be deleted from the database. If a message being deleted is shared, we need to keep enough information about it to avoid syncing it back to life.Milestone Bakwizgranakwizgranhttps://code.briarproject.org/briar/briar/-/issues/643Allow messages to be deleted in the delivery hook2018-06-12T11:32:19ZakwizgranAllow messages to be deleted in the delivery hookIf a client deletes a message in the delivery hook, the validation manager treats the message as invalid. Clients may want to delete messages they've finished handlng without having them invalidated, so we should provide some other way f...If a client deletes a message in the delivery hook, the validation manager treats the message as invalid. Clients may want to delete messages they've finished handlng without having them invalidated, so we should provide some other way for the delivery hook to signal that a message is invalid, such as throwing an InvalidMessageException.Milestone FTorsten GroteTorsten Grotehttps://code.briarproject.org/briar/briar/-/issues/2063Allow messages to be resent before they expire2021-07-06T09:41:53ZakwizgranAllow messages to be resent before they expireWhen sending data via removable drives, the strategy of waiting for one maximum round-trip time (twice the maximum latency of the transport) before allowing messages to be resent is likely to cause problems. For example:
* Alice exports...When sending data via removable drives, the strategy of waiting for one maximum round-trip time (twice the maximum latency of the transport) before allowing messages to be resent is likely to cause problems. For example:
* Alice exports messages to a removable drive. Before sending the drive to Bob, Alice realises that she accidentally used a drive belonging to her elderly mother, Carol, who uses the drive to store episodes of Desperate Housewives that she watches on the long bus ride to San Pedro de Atacama (Carol doesn't enjoy the austere beauty of the Atacama Desert, for reasons that are beyond the scope of this user story). Alice deletes the file and exports her messages again, using the right drive this time. Alice may expect that the new file contains all messages not seen by Bob, but in fact it doesn't contain any messages. The messages in the deleted file won't be sendable again for one max round-trip time
* Alice exports messages to a removable drive. Before sending the drive to Bob, Alice writes another message and wants to send this too. So she exports messages to the drive again. Alice may expect that if she overwrites the file she created the first time, the new file will contain all messages not seen by Bob. But in fact it will only contain the most recent message. The messages in the overwritten file won't be sendable again for one max round-trip time
* Alice exports messages to a removable drive and attaches it to a carrier pigeon. Knowing that the Atacama Desert is a harsh environment for pigeons, Alice also exports messages to a second drive, which she attaches to a carrier tortoise as a backup in case the pigeon succumbs to the arid climate. Alice may expect that the second drive contains the same messages as the first one, but in fact it doesn't contain any messages. The messages attached to the unfortunate pigeon won't be sendable again for one max round-trip time
To address these user stories we should send all unacked messages when syncing via removable drives. When syncing via mailboxes we should continue to use the current strategy of sending only messages that have not been sent before, or that were last sent more than one max round-trip time ago.Transfer content securely via SD cards and USB memory sticksakwizgranakwizgran2021-07-31https://code.briarproject.org/briar/briar/-/issues/541Allow retransmission if it will result in faster delivery2018-09-18T17:04:01ZakwizgranAllow retransmission if it will result in faster deliveryEach time a message is sent to a contact, the message's send time is updated based on the maximum latency of the transport, and the message cannot be sent to the contact again until the send time is reached. This prevents messages from b...Each time a message is sent to a contact, the message's send time is updated based on the maximum latency of the transport, and the message cannot be sent to the contact again until the send time is reached. This prevents messages from being retransmitted unnecessarily while they're still in transit. However, if a message is in transit over a high-latency transport, it may be desirable to allow it to be retransmitted over a low-latency transport to allow faster delivery.
Instead of comparing the send time to the current time, it should be compared to the expected delivery time over the current transport. The current time plus the maximum latency of the current transport can be used as a first estimate of the expected delivery time; we can get clever with round-trip time measurements later.Mailbox PrototypeJulian DehmJulian Dehmhttps://code.briarproject.org/briar/briar-desktop/-/issues/7Allow time travel in integration tests2021-12-06T14:25:49ZNicoAllow time travel in integration testsFor letting things work with briar's current `master`, we also need to inject time as in https://code.briarproject.org/briar/briar/-/merge_requests/1345.For letting things work with briar's current `master`, we also need to inject time as in https://code.briarproject.org/briar/briar/-/merge_requests/1345.Desktop 0.1.0Mikolai GütschowMikolai Gütschowhttps://code.briarproject.org/briar/briar/-/issues/387Allow to Unshare Forum2021-10-21T15:47:36ZTorsten GroteAllow to Unshare ForumWe switched the forum sharing paradigm from sharing as state to sharing as action and now there's no way to unshare a forum with someone without leaving the forum. I guess we can just misuse the LEAVE messages without actually leaving th...We switched the forum sharing paradigm from sharing as state to sharing as action and now there's no way to unshare a forum with someone without leaving the forum. I guess we can just misuse the LEAVE messages without actually leaving the forum, so we don't have to alter the protocol.
However, where in the UI do we allow to unshare a forum with someone?https://code.briarproject.org/briar/briar/-/issues/577Annotate fields and methods that should only be accessed from certain threads2020-11-21T17:35:02ZakwizgranAnnotate fields and methods that should only be accessed from certain threadsCreate @UiThread and @DbThread annotations for fields and methods (just for documentation purposes at this stage). Maybe also @Blocking and @NonBlocking for methods.Create @UiThread and @DbThread annotations for fields and methods (just for documentation purposes at this stage). Maybe also @Blocking and @NonBlocking for methods.https://code.briarproject.org/briar/briar/-/issues/1347Annotate UI methods that run on background threads2020-11-17T16:09:10ZakwizgranAnnotate UI methods that run on background threadsWe tend to assume that UI components are only accessed on the UI thread and don't need to be thread-safe, but sometimes this isn't true. Create an annotation for UI methods that run on background threads. (Methods that run on particular ...We tend to assume that UI components are only accessed on the UI thread and don't need to be thread-safe, but sometimes this isn't true. Create an annotation for UI methods that run on background threads. (Methods that run on particular executors can use the existing executor annotations.)https://code.briarproject.org/briar/briar/-/issues/1505API 28: Show Soft Keyboard When Activities no longer receive focus2020-02-14T10:34:52ZTorsten GroteAPI 28: Show Soft Keyboard When Activities no longer receive focushttps://developer.android.com/about/versions/pie/android-9.0-changes-28#focus
> Additionally, activities no longer implicitly assign initial focus in touch-mode. Instead, it is up to you to explicitly request initial focus, if desired.
...https://developer.android.com/about/versions/pie/android-9.0-changes-28#focus
> Additionally, activities no longer implicitly assign initial focus in touch-mode. Instead, it is up to you to explicitly request initial focus, if desired.
When entering the password, creating groups, forums or writing blog posts, the keyboard is shown initially, because the input fields receive focus. On API 28, we can't rely on this anymore and should use explicit keyboard states instead.Torsten GroteTorsten Grotehttps://code.briarproject.org/briar/briar/-/issues/1753API 30: Access to installed packages is restricted2021-01-12T11:22:23ZakwizgranAPI 30: Access to installed packages is restrictedWhen we target API 30 we'll need to make changes to retain the ability to check whether power management apps are installed:
https://medium.com/androiddevelopers/package-visibility-in-android-11-cc857f221cd9
* [x] `AndroidTorPlugin`: `...When we target API 30 we'll need to make changes to retain the ability to check whether power management apps are installed:
https://medium.com/androiddevelopers/package-visibility-in-android-11-cc857f221cd9
* [x] `AndroidTorPlugin`: `pm.getPackageInfo(app.getPackageName(), 0)`
* [x] `AndroidWakeLockManagerImpl`: `packageName.startsWith()`
* [x] `PanicPreferencesFragment`: `pm.getApplicationInfo(panicTriggerApp)`
* [x] `PanicPreferencesFragment`: `intent.resolveActivity(pm)`
* [x] `PanicPreferencesFragment`: `PanicResponder.resolveTriggerApps(pm)`
* [x] `ScreenFilterMonitorImpl`: `pm.getInstalledPackages(GET_PERMISSIONS)`
* [x] `ScreenFilterMonitorImpl`: `pm.getPackageInfo(PLAY_SERVICES_PACKAGE, GET_SIGNATURES)`
* [x] `SettingsFragment`: `intent.resolveActivity(pm)`
* [x] `HuaweiView`: `pm.queryIntentActivities(i, PackageManager.MATCH_DEFAULT_ONLY)`
* [x] `KeyAgreementActivity`: `Intent(ACTION_REQUEST_DISCOVERABLE).resolveActivity(pm)`
* [x] `LinkDialogFragment`: `pm.queryIntentActivities()`Adapt to changes in the Android platformTorsten GroteTorsten Grote2021-04-30https://code.briarproject.org/briar/briar-mailbox/-/issues/57API endpoint for adding a contact2022-02-07T09:46:17ZakwizgranAPI endpoint for adding a contactThe endpoint should return the contact's auth token and the incoming and outgoing folder IDs.
Depends on #43, #44, #45. Subtask of #4.The endpoint should return the contact's auth token and the incoming and outgoing folder IDs.
Depends on #43, #44, #45. Subtask of #4.Mailbox: Contact management APISebastianSebastianhttps://code.briarproject.org/briar/briar-mailbox/-/issues/70API endpoint for checking mailbox status2022-02-25T14:55:02ZakwizgranAPI endpoint for checking mailbox statusImplement an API endpoint at `/status` that just returns 200 OK. This can replace the existing endpoint at `/`.Implement an API endpoint at `/status` that just returns 200 OK. This can replace the existing endpoint at `/`.MailboxSebastianSebastianhttps://code.briarproject.org/briar/briar-mailbox/-/issues/58API endpoint for deleting a contact2022-02-07T09:46:19ZakwizgranAPI endpoint for deleting a contactDepends on #45. Subtask of #4.Depends on #45. Subtask of #4.Mailbox: Contact management APISebastianSebastianhttps://code.briarproject.org/briar/briar-mailbox/-/issues/53API endpoint for deleting a file2022-02-07T09:46:20ZakwizgranAPI endpoint for deleting a fileDepends on #43, #44. Subtask of #5.Depends on #43, #44. Subtask of #5.Mailbox: File management APITorsten GroteTorsten Grotehttps://code.briarproject.org/briar/briar-mailbox/-/issues/52API endpoint for downloading a file2022-02-07T09:46:19ZakwizgranAPI endpoint for downloading a fileDepends on #43, #44. Subtask of #5.Depends on #43, #44. Subtask of #5.Mailbox: File management APITorsten GroteTorsten Grotehttps://code.briarproject.org/briar/briar-mailbox/-/issues/103API endpoint for getting the API versions supported by the mailbox2022-07-13T11:14:54ZakwizgranAPI endpoint for getting the API versions supported by the mailboxThe endpoint should return a list of (major, minor) pairs.The endpoint should return a list of (major, minor) pairs.MailboxSebastianSebastianhttps://code.briarproject.org/briar/briar-mailbox/-/issues/56API endpoint for listing contacts2022-02-07T09:46:19ZakwizgranAPI endpoint for listing contactsSubtask of #4Subtask of #4Mailbox: Contact management APISebastianSebastian