briar issueshttps://code.briarproject.org/briar/briar/-/issues2020-11-21T17:53:25Zhttps://code.briarproject.org/briar/briar/-/issues/525Forum posts overlap when new post is added2020-11-21T17:53:25ZakwizgranForum posts overlap when new post is addedCame across this bug while creating a load of exciting forum posts to investigate #516. I created five top-level posts, then started creating a chain of replies to the first top-level post. When the fourth reply was posted, the posts ove...Came across this bug while creating a load of exciting forum posts to investigate #516. I created five top-level posts, then started creating a chain of replies to the first top-level post. When the fourth reply was posted, the posts overlapped each other (see screenshot). Scrolling the view would scroll all of the posts except one, which remained stuck and overlapping the other posts. Collapsing and expanding the chain of replies fixed the issue.
![Screenshot_2016-07-27-11-54-05](/uploads/a726b482000f3272cb78364ccd17d9f7/Screenshot_2016-07-27-11-54-05.png)https://code.briarproject.org/briar/briar/-/issues/524Check that ACRA is catching all uncaught exceptions2018-06-12T11:32:23ZakwizgranCheck that ACRA is catching all uncaught exceptionsWe've had two reports recently of crashes that don't seem to have been caught by ACRA. @ernir reported a crash in #516 where the background service disappeared (possibly killed by the OS due to resource limits) without the crash report d...We've had two reports recently of crashes that don't seem to have been caught by ACRA. @ernir reported a crash in #516 where the background service disappeared (possibly killed by the OS due to resource limits) without the crash report dialog appearing, and @grote reported that an IllegalArgumentException on a background thread caused by a blog post exceeding MAX_BODY_LENGTH caused a crash without a stacktrace.Milestone FTorsten GroteTorsten Grotehttps://code.briarproject.org/briar/briar/-/issues/523Update wiki page for introduction client2018-06-12T11:32:23ZakwizgranUpdate wiki page for introduction clientThe description on the wiki should be brought into line with the current implementation.The description on the wiki should be brought into line with the current implementation.https://code.briarproject.org/briar/briar/-/issues/522Update wiki pages for blog client and blog sharing client2018-06-12T11:32:23ZakwizgranUpdate wiki pages for blog client and blog sharing clientThe description on the wiki should be brought into line with the current implementation.The description on the wiki should be brought into line with the current implementation.https://code.briarproject.org/briar/briar/-/issues/521Update wiki pages for forum client and forum sharing client2018-06-12T11:32:23ZakwizgranUpdate wiki pages for forum client and forum sharing clientThe description on the wiki should be brought into line with the current implementation.The description on the wiki should be brought into line with the current implementation.https://code.briarproject.org/briar/briar/-/issues/520Update wiki page for messaging client2018-06-12T11:32:23ZakwizgranUpdate wiki page for messaging clientThe description on the wiki should be brought into line with the current implementation.The description on the wiki should be brought into line with the current implementation.https://code.briarproject.org/briar/briar/-/issues/519Update wiki page for transport client2018-06-12T11:32:23ZakwizgranUpdate wiki page for transport clientThe description on the wiki should be brought into line with the current implementation.The description on the wiki should be brought into line with the current implementation.https://code.briarproject.org/briar/briar/-/issues/518Limit the depth of nested BDF structures2018-06-12T11:32:23ZakwizgranLimit the depth of nested BDF structuresSome methods of ReaderImpl will attempt to read nested lists and dictionaries to an arbitrary depth, potentially causing a stack overflow. This could be used to crash the app. Provide a configurable limit on the depth of nested structure...Some methods of ReaderImpl will attempt to read nested lists and dictionaries to an arbitrary depth, potentially causing a stack overflow. This could be used to crash the app. Provide a configurable limit on the depth of nested structures and throw a FormatException if the limit is exceeded.Milestone FTorsten GroteTorsten Grotehttps://code.briarproject.org/briar/briar/-/issues/517Simple UI for Managing RSS Feeds2018-06-12T11:32:23ZTorsten GroteSimple UI for Managing RSS FeedsImplement the design from #483.Implement the design from #483.Milestone DTorsten GroteTorsten Grotehttps://code.briarproject.org/briar/briar/-/issues/516Joining a busy forum overloads the device, which kills the Briar service2018-06-12T11:32:23ZErnir ErlingssonJoining a busy forum overloads the device, which kills the Briar serviceA user joined a forum with ~50 entries, looked at the forum (which was empty at the time) and then put Briar into the background. After a while the notification "49 new forum entries" appeared, but shortly thereafter the screen went dark...A user joined a forum with ~50 entries, looked at the forum (which was empty at the time) and then put Briar into the background. After a while the notification "49 new forum entries" appeared, but shortly thereafter the screen went dark and the device became completely unresponsive for around 10 seconds. After that the user was able to activate the screen again but the Briar notification was gone and seemingly the service had either crashed or was killed by the OS.Milestone Chttps://code.briarproject.org/briar/briar/-/issues/515Starting Intent from Preferences does not work with different app id2018-06-12T11:32:23ZTorsten GroteStarting Intent from Preferences does not work with different app idWhen changing the app id to support simultaneous installations on one device for testing purposes such as an app id suffix .debug, the intents from the preferences screen (password change and panic) crash the app since the package id is ...When changing the app id to support simultaneous installations on one device for testing purposes such as an app id suffix .debug, the intents from the preferences screen (password change and panic) crash the app since the package id is hardcoded in the intent.Milestone DTorsten GroteTorsten Grotehttps://code.briarproject.org/briar/briar/-/issues/514NPE Crash when adding contacts in emulator2018-06-12T11:32:23ZTorsten GroteNPE Crash when adding contacts in emulator```
07-22 11:12:00.947 3067-3067/? W/CameraView: Error stopping camera preview
java.lang.NullPointerException: Attempt to invoke interface method 'void org.briarproject.android.util.PreviewC...```
07-22 11:12:00.947 3067-3067/? W/CameraView: Error stopping camera preview
java.lang.NullPointerException: Attempt to invoke interface method 'void org.briarproject.android.util.PreviewConsumer.stop()' on a null object reference
at org.briarproject.android.util.CameraView.stopConsumer(CameraView.java:121)
at org.briarproject.android.util.CameraView.stopPreview(CameraView.java:108)
at org.briarproject.android.util.CameraView.stop(CameraView.java:87)
at org.briarproject.android.keyagreement.ShowQrCodeFragment.releaseCamera(ShowQrCodeFragment.java:240)
at org.briarproject.android.keyagreement.ShowQrCodeFragment.onPause(ShowQrCodeFragment.java:169)
at android.support.v4.app.Fragment.performPause(Fragment.java:2139)
at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1117)
at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1252)
at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1234)
at android.support.v4.app.FragmentManagerImpl.dispatchPause(FragmentManager.java:2060)
at android.support.v4.app.FragmentController.dispatchPause(FragmentController.java:207)
at android.support.v4.app.FragmentActivity.onPause(FragmentActivity.java:444)
at org.briarproject.android.BaseActivity.onPause(BaseActivity.java:72)
at org.briarproject.android.keyagreement.KeyAgreementActivity.onPause(KeyAgreementActivity.java:114)
at android.app.Activity.performPause(Activity.java:6809)
at android.app.Instrumentation.callActivityOnPause(Instrumentation.java:1322)
at android.app.ActivityThread.performPauseActivityIfNeeded(ActivityThread.java:3685)
at android.app.ActivityThread.performPauseActivity(ActivityThread.java:3662)
at android.app.ActivityThread.performPauseActivity(ActivityThread.java:3636)
at android.app.ActivityThread.handlePauseActivity(ActivityThread.java:3610)
at android.app.ActivityThread.-wrap16(ActivityThread.java)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1461)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:154)
at android.app.ActivityThread.main(ActivityThread.java:5969)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:801)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:691)
07-22 11:12:00.948 3067-3067/? W/CameraView: Error releasing camera
java.lang.NullPointerException: Attempt to invoke virtual method 'void android.hardware.Camera.release()' on a null object reference
at org.briarproject.android.util.CameraView.stop(CameraView.java:89)
at org.briarproject.android.keyagreement.ShowQrCodeFragment.releaseCamera(ShowQrCodeFragment.java:240)
at org.briarproject.android.keyagreement.ShowQrCodeFragment.onPause(ShowQrCodeFragment.java:169)
at android.support.v4.app.Fragment.performPause(Fragment.java:2139)
at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1117)
at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1252)
at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1234)
at android.support.v4.app.FragmentManagerImpl.dispatchPause(FragmentManager.java:2060)
at android.support.v4.app.FragmentController.dispatchPause(FragmentController.java:207)
at android.support.v4.app.FragmentActivity.onPause(FragmentActivity.java:444)
at org.briarproject.android.BaseActivity.onPause(BaseActivity.java:72)
at org.briarproject.android.keyagreement.KeyAgreementActivity.onPause(KeyAgreementActivity.java:114)
at android.app.Activity.performPause(Activity.java:6809)
at android.app.Instrumentation.callActivityOnPause(Instrumentation.java:1322)
at android.app.ActivityThread.performPauseActivityIfNeeded(ActivityThread.java:3685)
at android.app.ActivityThread.performPauseActivity(ActivityThread.java:3662)
at android.app.ActivityThread.performPauseActivity(ActivityThread.java:3636)
at android.app.ActivityThread.handlePauseActivity(ActivityThread.java:3610)
at android.app.ActivityThread.-wrap16(ActivityThread.java)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1461)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:154)
at android.app.ActivityThread.main(ActivityThread.java:5969)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:801)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:691)
```Milestone DTorsten GroteTorsten Grotehttps://code.briarproject.org/briar/briar/-/issues/511Mitigate flooding attacks at sync layer2020-11-21T18:33:47ZakwizgranMitigate flooding attacks at sync layerThe sync layer should mitigate flooding attacks by preventing any contact or group from exhausting any resource (computation, bandwidth, memory or storage).
This might be done by implementing something similar to fair queueing for each ...The sync layer should mitigate flooding attacks by preventing any contact or group from exhausting any resource (computation, bandwidth, memory or storage).
This might be done by implementing something similar to fair queueing for each resource: when the resource gets close to being fully used, prioritise demand from contacts and groups that are using less than their fair share over demand from contacts and groups that are using more than their fair share.https://code.briarproject.org/briar/briar/-/issues/510Android virus scanner detected Briar as malware2020-11-21T18:34:24ZakwizgranAndroid virus scanner detected Briar as malwareFeedback from a user testing session:
> One guy reported that his virus scanner on his old phone said that Briar was recognized as malware (maybe because it has Tor in it?).Feedback from a user testing session:
> One guy reported that his virus scanner on his old phone said that Briar was recognized as malware (maybe because it has Tor in it?).https://code.briarproject.org/briar/briar/-/issues/509Tapping QR code viewfinder should initiate auto focus2018-03-08T15:59:02ZakwizgranTapping QR code viewfinder should initiate auto focusFeedback from user testing:
> Almost anybody tried to tab the camera view finder to change the focus mode when it didn't scan immediately. People seem to be used to doing that with their regular camera. Maybe we could implement someth...Feedback from user testing:
> Almost anybody tried to tab the camera view finder to change the focus mode when it didn't scan immediately. People seem to be used to doing that with their regular camera. Maybe we could implement something similar to assist the scanning.Android 1.0akwizgranakwizgranhttps://code.briarproject.org/briar/briar/-/issues/508Don't warn about leaving forum unless the user has shared it2020-11-21T18:35:19ZakwizgranDon't warn about leaving forum unless the user has shared itWhen the user leaves a forum we ask for confirmation, with a warning that any contacts the user has shared the forum with may stop receiving updates if she leaves. This warning should only be shown if the user has shared the forumWhen the user leaves a forum we ask for confirmation, with a warning that any contacts the user has shared the forum with may stop receiving updates if she leaves. This warning should only be shown if the user has shared the forumhttps://code.briarproject.org/briar/briar/-/issues/506Metadata collections2018-06-12T11:32:23ZakwizgranMetadata collectionsA key/value map of metadata can be associated with any group ID or message ID in the local DB. Some clients also need to store metadata for protocol sessions, which requires a hack to associate the session ID with a message ID where the ...A key/value map of metadata can be associated with any group ID or message ID in the local DB. Some clients also need to store metadata for protocol sessions, which requires a hack to associate the session ID with a message ID where the metadata is stored.
We can generalise the current approach by replacing the group ID or message ID with an arbitrary collection ID. However, we still want all metadata to belong to a group so it can be garbage collected if the group is removed. So the metadata structure becomes: group/collection/key/value. To associate metadata with a message, use the message ID as the collection ID. Metadata queries that currently return message IDs will return collection IDs instead.
This change will allow protocol clients to store metadata directly under the session ID. It will also allow settings to be stored as metadata rather than using a separate DB table, and the group and message metadata tables can be merged.
Sub-task of #136.https://code.briarproject.org/briar/briar/-/issues/505highlighting/marking for copy/paste in dark speech bubbles not visible2019-02-22T15:28:30ZMegaloxhighlighting/marking for copy/paste in dark speech bubbles not visiblea tester tried to copy text from his own speech bubble. the highlighting cannot be seen clearly on the dark background.a tester tried to copy text from his own speech bubble. the highlighting cannot be seen clearly on the dark background.https://code.briarproject.org/briar/briar/-/issues/504Define and design primary and secondary actions2018-06-12T11:32:23ZMegaloxDefine and design primary and secondary actionsIn some cases we might want to lead the user to the "right" decision by defining and designing primary and secondary actions.
For example:
Do you want to send the crash report?
YES (on a prominently colored button) NO (grey but...In some cases we might want to lead the user to the "right" decision by defining and designing primary and secondary actions.
For example:
Do you want to send the crash report?
YES (on a prominently colored button) NO (grey button)
Because we want to get as many crash reports as possible.
Please feel free to add more cases where this may be helpful.Milestone FTorsten GroteTorsten Grotehttps://code.briarproject.org/briar/briar/-/issues/503Deliver private messages in order2020-11-21T18:37:21ZakwizgranDeliver private messages in orderTo reduce confusion when private messages arrive asynchronously, deliver them in the order they were sent, either by using a message queue or by making each message depend on the previous one.To reduce confusion when private messages arrive asynchronously, deliver them in the order they were sent, either by using a message queue or by making each message depend on the previous one.