briar issueshttps://code.briarproject.org/groups/briar/-/issues2021-07-06T09:56:40Zhttps://code.briarproject.org/briar/briar/-/issues/1835Automatically decline incoming blog/forum invitations when they self-destruct2021-07-06T09:56:40ZakwizgranAutomatically decline incoming blog/forum invitations when they self-destructWhen an incoming blog/forum invitation self-destructs without being answered, automatically decline the invitation. This may require a protocol update (coordinated with #1830) to flag the decline as an automatic response that shouldn't b...When an incoming blog/forum invitation self-destructs without being answered, automatically decline the invitation. This may require a protocol update (coordinated with #1830) to flag the decline as an automatic response that shouldn't be shown in the UI.
Subtask of #804Self-destructing messagesIvanaIvana2021-01-31https://code.briarproject.org/briar/briar/-/issues/1834Automatically decline incoming introduction requests when they self-destruct2021-05-05T16:17:22ZakwizgranAutomatically decline incoming introduction requests when they self-destructWhen an incoming introduction request self-destructs without being answered, automatically decline the request. This may require a protocol update (coordinated with #1829) to flag the decline as an automatic response that shouldn't be sh...When an incoming introduction request self-destructs without being answered, automatically decline the request. This may require a protocol update (coordinated with #1829) to flag the decline as an automatic response that shouldn't be shown in the UI.
Subtask of #804
Test instructions:
* Use three devices, users A, B and C
* Enable self-destructing messages in the conversations A-B and A-C
* Let A introduce contacts B and C
* Expect invitation messages to arrive at B and C about the invitation
* Expect the invitation messages to have a auto-delete timers
* Let those timers expire. Expect that to trigger an automatic decline of the invitation, i.e. on all three devices it is visible that the introduction failed (due to the expired response)
* Expect all messages from that interaction to destroy after each message's timer expires
* Let A introduce B and C again. Expect this *not* to fail due to an introduction that is already going on (because none should be going on any longer)
* Let B and C accept the introduction
* Expect the introduction to work
* Confirm that B and C have each other in the contact list
* Expect all messages involved in the transaction to have auto-delete timers
* Let those timers expire and expect all those messages to disappearSelf-destructing messagesIvanaIvana2021-01-31https://code.briarproject.org/briar/briar/-/issues/1833Delete messages when their self-destruct timers expire2021-03-11T12:25:31ZakwizgranDelete messages when their self-destruct timers expireCreate a component that tracks pending self-destruct timers and deletes messages when their self-destruct timers expire.
Conversation clients will register messages for deletion during delivery. The new component will be responsible for...Create a component that tracks pending self-destruct timers and deletes messages when their self-destruct timers expire.
Conversation clients will register messages for deletion during delivery. The new component will be responsible for calling back into the client when a message is due to be deleted. This will allow the client to take any necessary steps before deletion, such as declining an open introduction.
Subtask of #804Self-destructing messagesIvanaIvana2021-01-31https://code.briarproject.org/briar/briar/-/issues/1832Store self-destruct timer duration2020-12-16T12:58:10ZakwizgranStore self-destruct timer durationFor each contact, store the local timer duration for self-destructing messages and the time when it was updated. When a message is received from the contact with a different timer duration and higher timestamp, update the local timer dur...For each contact, store the local timer duration for self-destructing messages and the time when it was updated. When a message is received from the contact with a different timer duration and higher timestamp, update the local timer duration. There should also be methods for setting the duration manually and querying the duration when sending a message.
Subtask of #804Self-destructing messagesakwizgranakwizgran2021-01-31https://code.briarproject.org/briar/briar/-/issues/1831Update private group sharing client to include a self-destruct timer in each ...2020-11-30T12:45:14ZakwizgranUpdate private group sharing client to include a self-destruct timer in each messageSubtask of #804Subtask of #804Self-destructing messagesakwizgranakwizgran2021-01-31https://code.briarproject.org/briar/briar/-/issues/1830Update blog and forum sharing clients to include a self-destruct timer in eac...2020-11-30T12:45:14ZakwizgranUpdate blog and forum sharing clients to include a self-destruct timer in each messageSubtask of #804Subtask of #804Self-destructing messagesakwizgranakwizgran2021-01-31https://code.briarproject.org/briar/briar/-/issues/1829Update introduction client to include a self-destruct timer in each message2020-11-30T12:45:13ZakwizgranUpdate introduction client to include a self-destruct timer in each messageSubtask of #804Subtask of #804Self-destructing messagesakwizgranakwizgran2021-01-31https://code.briarproject.org/briar/briar/-/issues/1828Update messaging client to include a self-destruct timer in each message2020-11-30T12:45:13ZakwizgranUpdate messaging client to include a self-destruct timer in each messageSubtask of #804Subtask of #804Self-destructing messagesakwizgranakwizgran2021-01-31https://code.briarproject.org/briar/briar/-/issues/1207Update content rating in Play Store when image support is added2021-07-06T10:06:40ZakwizgranUpdate content rating in Play Store when image support is addedProfile picturesakwizgranakwizgran2021-01-31https://code.briarproject.org/briar/briar/-/issues/2151Simple UI for Connect via Bluetooth feature2021-08-31T13:11:42ZTorsten GroteSimple UI for Connect via Bluetooth featureThe current UI prototype only uses Toasts to communicate progress to the user.
We should give this a dedicated screen which explains what the feature does and then shows progress information to the user.The current UI prototype only uses Toasts to communicate progress to the user.
We should give this a dedicated screen which explains what the feature does and then shows progress information to the user.Adapt to changes in the Android platformTorsten GroteTorsten Grotehttps://code.briarproject.org/briar/briar/-/issues/1973Make use of DbViewModel#handleException2021-04-26T12:13:14ZTorsten GroteMake use of DbViewModel#handleException!1342 is introducing `DbViewModel#handleException()` that we should also use in other ViewModel code where we currently do nothing more than logging the exception.!1342 is introducing `DbViewModel#handleException()` that we should also use in other ViewModel code where we currently do nothing more than logging the exception.Adapt to changes in the Android platformSebastianSebastian2021-04-30https://code.briarproject.org/briar/briar/-/issues/1962Implement backend of "Connect via Bluetooth" feature2021-04-27T12:31:32ZTorsten GroteImplement backend of "Connect via Bluetooth" featureProvide the backend functionality for: #1961
A couple of options there:
* we can try to connect to a specific contact without closing any existing connections (no prioritisation), which is what we'd usually do when polling
* or we can ...Provide the backend functionality for: #1961
A couple of options there:
* we can try to connect to a specific contact without closing any existing connections (no prioritisation), which is what we'd usually do when polling
* or we can close other connections first to give the new connection the best chance of succeeding
Maybe we should defer this question until we've experimented a bit. We already have a mechanism for closing connections so we know it's something that could be added later if needed.Adapt to changes in the Android platformDaniel LublinDaniel Lublin2021-04-30https://code.briarproject.org/briar/briar/-/issues/1961Implement UI of "Connect via Bluetooth" feature2021-07-06T10:01:35ZTorsten GroteImplement UI of "Connect via Bluetooth" featureImplement the design of #1960
Sub-task of #1821Implement the design of #1960
Sub-task of #1821Adapt to changes in the Android platformIvanaIvana2021-04-30https://code.briarproject.org/briar/briar/-/issues/1960Design "Connect via Bluetooth" feature2021-04-26T12:52:47ZTorsten GroteDesign "Connect via Bluetooth" featureSub-task of #1821Sub-task of #1821Adapt to changes in the Android platformTorsten GroteTorsten Grote2021-04-30https://code.briarproject.org/briar/briar/-/issues/1951Exclude files from D2D backups2021-03-15T13:29:35ZTorsten GroteExclude files from D2D backupsWhen targeting API 30: When using device-to-device backup our `allowBackup=false` will be ignored and our app data will get backed up, if we don't explicitly exclude files from backup.
Subtask of #1827When targeting API 30: When using device-to-device backup our `allowBackup=false` will be ignored and our app data will get backed up, if we don't explicitly exclude files from backup.
Subtask of #1827Adapt to changes in the Android platformTorsten GroteTorsten Grote2021-04-30https://code.briarproject.org/briar/briar/-/issues/1921PluginViewModel should wait for DB to open before loading settings2021-04-21T11:29:10ZakwizgranPluginViewModel should wait for DB to open before loading settingsWhile testing something unrelated on the 1.2.12 release I noticed this exception in the log:
```
02-03 16:15:52.017 2925-2952/org.briarproject.briar.android.debug W/PluginViewModel: org.briarproject.bramble.api.db.DbClosedException
...While testing something unrelated on the 1.2.12 release I noticed this exception in the log:
```
02-03 16:15:52.017 2925-2952/org.briarproject.briar.android.debug W/PluginViewModel: org.briarproject.bramble.api.db.DbClosedException
org.briarproject.bramble.api.db.DbClosedException
at org.briarproject.bramble.db.H2Database.createConnection(H2Database.java:97)
at org.briarproject.bramble.db.JdbcDatabase.startTransaction(JdbcDatabase.java:554)
at org.briarproject.bramble.db.JdbcDatabase.startTransaction(JdbcDatabase.java:97)
at org.briarproject.bramble.db.DatabaseComponentImpl.startTransaction(DatabaseComponentImpl.java:161)
at org.briarproject.bramble.db.DatabaseComponentImpl.transactionWithResult(DatabaseComponentImpl.java:208)
at org.briarproject.bramble.settings.SettingsManagerImpl.getSettings(SettingsManagerImpl.java:26)
at org.briarproject.briar.android.navdrawer.PluginViewModel.isPluginEnabled(PluginViewModel.java:204)
at org.briarproject.briar.android.navdrawer.PluginViewModel.lambda$loadSettings$0$PluginViewModel(PluginViewModel.java:187)
at org.briarproject.briar.android.navdrawer.-$$Lambda$PluginViewModel$HPPDOnjY7Hk6kE7RpR2no4vHis8.run(lambda)
at org.briarproject.bramble.TimeLoggingExecutor.lambda$execute$0$TimeLoggingExecutor(TimeLoggingExecutor.java:36)
at org.briarproject.bramble.-$$Lambda$TimeLoggingExecutor$Bqrtbsq_8LcRPoTWBOef6xh7gJg.run(lambda)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1113)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:588)
at java.lang.Thread.run(Thread.java:818)
```
This happens at startup when NavDrawerActivity is created before signing in, as PluginViewModel tries to load the plugin settings.
This is currently harmless because a new NavDrawerActivity instance is created after signing in, with a new view model instance that successfully loads the settings. But that's just a lucky accident. To avoid depending on that, perhaps it would be better to refactor PluginViewModel to use DbViewModel#runOnDbThread()?Adapt to changes in the Android platformSebastianSebastian2021-04-30https://code.briarproject.org/briar/briar/-/issues/1914Create ViewModels immediately after injection2021-04-26T12:11:53ZakwizgranCreate ViewModels immediately after injectionVarious activities and fragments are creating their view models at different points in their lifecycles. To avoid subtle lifecycle bugs let's standardise this and create view models immediately after injection.
Subtask of #1823.
Test i...Various activities and fragments are creating their view models at different points in their lifecycles. To avoid subtle lifecycle bugs let's standardise this and create view models immediately after injection.
Subtask of #1823.
Test instructions:
This set of changes doesn't introduce new features, it only rearranges some code and is supposed not to break anything. It makes sense to test that the workflows and actions for which code has been touched. These include:
* Creating a new account on a fresh install
* Adding contacts via QR codes and make sure it works
* Add a contact remotely and before that finishes (by only completing the dialog on one of the devices first), check that the screen with the "pending contacts" works as expected
* Changing the alias for a contact
* Changing the account password
* Sending an image and opening that image full screen on both the sender and receiver device
* Opening the transports screen (by opening the navigation drawer on the left, tapping any of the connection modes at the bottom) and check that changing anything there persists (i.e. is still changed when navigating away and back to that screen)Adapt to changes in the Android platformSebastianSebastian2021-04-30https://code.briarproject.org/briar/briar/-/issues/1905Use ContactListViewModel in ContactChooserFragment and IntroductionActivity2021-04-26T12:51:23ZSebastianUse ContactListViewModel in ContactChooserFragment and IntroductionActivity!1341 introduced the ContactListViewModel which should be reusable by ContactChooserFragment and IntroductionActivity!1341 introduced the ContactListViewModel which should be reusable by ContactChooserFragment and IntroductionActivityAdapt to changes in the Android platformSebastianSebastian2021-04-30https://code.briarproject.org/briar/briar/-/issues/1894Introduce ViewModel for RssFeed*Activity2021-05-05T16:08:09ZTorsten GroteIntroduce ViewModel for RssFeed*ActivityThere's `RssFeedManageActivity` and `RssFeedImportActivity`. Maybe one of them or both can be turned into a fragment and share the same ViewModel.
Subtask of #1823.There's `RssFeedManageActivity` and `RssFeedImportActivity`. Maybe one of them or both can be turned into a fragment and share the same ViewModel.
Subtask of #1823.Adapt to changes in the Android platformDaniel LublinDaniel Lublin2021-04-30https://code.briarproject.org/briar/briar/-/issues/1891Migrate SharingController to ViewModel2021-04-26T12:53:15ZTorsten GroteMigrate SharingController to ViewModelUsed by blogs and forums.Used by blogs and forums.Adapt to changes in the Android platformTorsten GroteTorsten Grote2021-04-30