briar issueshttps://code.briarproject.org/briar/briar/-/issues2022-09-15T16:14:47Zhttps://code.briarproject.org/briar/briar/-/issues/2165Make use of Tor on Windows2022-09-15T16:14:47ZNicoMake use of Tor on WindowsWe need some mechanism to use the Tor binary on Windows. The relevant class for Linux is [UnixTorPluginFactory](https://code.briarproject.org/briar/briar/-/blob/beta-1.3.8/bramble-java/src/main/java/org/briarproject/bramble/plugin/tor/Un...We need some mechanism to use the Tor binary on Windows. The relevant class for Linux is [UnixTorPluginFactory](https://code.briarproject.org/briar/briar/-/blob/beta-1.3.8/bramble-java/src/main/java/org/briarproject/bramble/plugin/tor/UnixTorPluginFactory.java#L96).
Similar to https://code.briarproject.org/briar/briar/-/merge_requests/1376.
Related to https://code.briarproject.org/briar/briar-desktop/-/issues/31.
Depends on https://code.briarproject.org/briar/tor-reproducer/-/issues/2.https://code.briarproject.org/briar/briar/-/issues/904Briar doesn't shut down if Tor has crashed2017-07-31T13:10:54ZakwizgranBriar doesn't shut down if Tor has crashedIf the Tor process crashes, Briar waits forever for the control port shutdown command to complete. It should eventually time out so that Briar doesn't need to be force stopped.If the Tor process crashes, Briar waits forever for the control port shutdown command to complete. It should eventually time out so that Briar doesn't need to be force stopped.Android Beta 1Julian DehmJulian Dehmhttps://code.briarproject.org/briar/briar/-/issues/966Sharing contact's blog fails with DbException2017-07-07T14:23:49ZakwizgranSharing contact's blog fails with DbExceptionLooks like this may have the same cause as #962.
```
06-01 02:02:06.140 25336-25418/org.briarproject.briar W/tSelectorControllerImpl: org.briarproject.bramble.api.db.DbException
org.briarproject.bramble.api.db.DbException
at...Looks like this may have the same cause as #962.
```
06-01 02:02:06.140 25336-25418/org.briarproject.briar W/tSelectorControllerImpl: org.briarproject.bramble.api.db.DbException
org.briarproject.bramble.api.db.DbException
at org.briarproject.briar.sharing.SharingManagerImpl.getSession(SharingManagerImpl.java:162)
at org.briarproject.briar.sharing.SharingManagerImpl.canBeShared(SharingManagerImpl.java:433)
at org.briarproject.briar.sharing.SharingManagerImpl.canBeShared(SharingManagerImpl.java:420)
at org.briarproject.briar.android.sharing.ShareBlogControllerImpl.isDisabled(ShareBlogControllerImpl.java:54)
at org.briarproject.briar.android.contactselection.ContactSelectorControllerImpl$1.run(ContactSelectorControllerImpl.java:54)
at org.briarproject.briar.android.controller.DbControllerImpl$1.run(DbControllerImpl.java:37)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
at java.lang.Thread.run(Thread.java:818)
```Android Beta 1Torsten GroteTorsten Grotehttps://code.briarproject.org/briar/briar/-/issues/962Removing contact fails with DbException2017-07-04T15:19:30ZakwizgranRemoving contact fails with DbExceptionWith a fresh install of Briar, I added and removed a contact. Removing the contact succeeded on one device, but failed repeatedly on the other device with the following exception:
```
05-31 18:13:01.426 2390-2584/org.briarproject.briar ...With a fresh install of Briar, I added and removed a contact. Removing the contact succeeded on one device, but failed repeatedly on the other device with the following exception:
```
05-31 18:13:01.426 2390-2584/org.briarproject.briar W/ConversationActivity: org.briarproject.bramble.api.db.DbException
org.briarproject.bramble.api.db.DbException
at org.briarproject.briar.sharing.SharingManagerImpl.getSession(SharingManagerImpl.java:162)
at org.briarproject.briar.sharing.SharingManagerImpl.removingShareable(SharingManagerImpl.java:453)
at org.briarproject.briar.sharing.BlogSharingManagerImpl.removingBlog(BlogSharingManagerImpl.java:70)
at org.briarproject.briar.blog.BlogManagerImpl.removeBlog(BlogManagerImpl.java:224)
at org.briarproject.briar.blog.BlogManagerImpl.removingContact(BlogManagerImpl.java:119)
at org.briarproject.bramble.contact.ContactManagerImpl.removeContact(ContactManagerImpl.java:175)
at org.briarproject.bramble.contact.ContactManagerImpl.removeContact(ContactManagerImpl.java:137)
at org.briarproject.briar.android.contact.ConversationActivity$19.run(ConversationActivity.java:810)
at org.briarproject.briar.android.controller.DbControllerImpl$1.run(DbControllerImpl.java:37)
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)
```
From the stacktrace, it looks like more than one session has somehow been created for sharing the contact's blog. (I didn't share the blog manually.)Android Beta 1Torsten GroteTorsten Grotehttps://code.briarproject.org/briar/briar/-/issues/809Create tickets for things that need to be done before public beta2017-07-21T13:28:29ZakwizgranCreate tickets for things that need to be done before public betaAndroid Beta 1akwizgranakwizgranhttps://code.briarproject.org/briar/briar/-/issues/956Tap protection UX problems2017-07-03T11:10:08ZErnir ErlingssonTap protection UX problemsThe current UX of the tap protection isn't good enough
***Test 1***
Three "regular" users: None of the users had a IT/CS background but all were familiar with Apps and their smartphones.
* All users were left insecure about the...The current UX of the tap protection isn't good enough
***Test 1***
Three "regular" users: None of the users had a IT/CS background but all were familiar with Apps and their smartphones.
* All users were left insecure about their devices security after reading the pop-up (all users got pop-ups, I've actually not seen a device yet that doesn't have at least one app which appears on the list.). Some wondered if they should even use Briar at all due to a security breach of their device.
* One user didn't recognise all the apps listed despite all of the being safe (I checked). This made the user very insecure about his phone's general security, got questions like "Did someone install something on my phone without my knowledge ?", "Do I need to virus scan my phone?", "Does this mean I shouldn't use Briar ?"
* Two testers weren't aware that it was even possible for other apps to steal taps and had to be educated in what this means exactly.
***Test 2***
Three software developers
* All three were a bit confused about the meaning (all three read it in German). All three understood roughly what it was about in the end but it was not smooth and the final understanding varied quite a bit.
* One user thought Briar was warning against screen-shot copying (the german text actually doesn't say "tap" anywhere, only "overlaying apps".
* One user felt that Briar had scanned his phone without permission to display the list of overlaying apps.
* All three wondered if the security risk really warranted such a dominating UI response from Briar and one suggested a warning triangle you could press for more information.
***End result***
We need re-design this on the UX level, we also need to bear in mind the variation in how security conscious the users are. I feel we should split this into basic information, which is always displayed, and advanced information when user requests it. I also felt the warning triangle idea was a good one.Android Beta 1akwizgranakwizgranhttps://code.briarproject.org/briar/briar/-/issues/805Help text isn't visible in introduction message screen2017-07-03T11:10:09ZakwizgranHelp text isn't visible in introduction message screen@Megalox reported this on https://code.briarproject.org/akwizgran/briar/issues/570#note_16887:
> there is a help text on the mesage input screen, but it is partly hidden by the input field and I can't scroll the upper part, I have to cl...@Megalox reported this on https://code.briarproject.org/akwizgran/briar/issues/570#note_16887:
> there is a help text on the mesage input screen, but it is partly hidden by the input field and I can't scroll the upper part, I have to close the keyboard to read the last line.
Let's replace the help text with a hint in the input field - something like "Add a message (optional)".Android Beta 1akwizgranakwizgranhttps://code.briarproject.org/briar/briar/-/issues/954NPE: showNewScreenFilterWarning2017-06-30T12:21:59ZTorsten GroteNPE: showNewScreenFilterWarningI got this strange crash in the log:
```
05-19 12:04:13.178 I/ActivityManager: START u0 {flg=0x14000000 cmp=org.briarproject.unofficial/org.briarproject.briar.android.navdrawer.NavDrawerActivity (has extras)} from uid 10104 on display ...I got this strange crash in the log:
```
05-19 12:04:13.178 I/ActivityManager: START u0 {flg=0x14000000 cmp=org.briarproject.unofficial/org.briarproject.briar.android.navdrawer.NavDrawerActivity (has extras)} from uid 10104 on display 0
05-19 12:04:13.210 I/art: System.exit called, status: 0
05-19 12:04:13.210 I/AndroidRuntime: VM exiting with result code 0, cleanup skipped.
05-19 12:04:13.333 W/InputDispatcher: channel '9fb7829 org.briarproject.unofficial/org.briarproject.briar.android.navdrawer.NavDrawerActivity (server)' ~ Consumer closed input channel or an error occurred. events=0x9
05-19 12:04:13.333 E/InputDispatcher: channel '9fb7829 org.briarproject.unofficial/org.briarproject.briar.android.navdrawer.NavDrawerActivity (server)' ~ Channel is unrecoverably broken and will be disposed!
05-19 12:04:13.334 D/GraphicsStats: Buffer count: 23
05-19 12:04:13.334 I/WindowManager: WIN DEATH: Window{9fb7829 u0 org.briarproject.unofficial/org.briarproject.briar.android.navdrawer.NavDrawerActivity}
05-19 12:04:13.335 I/ActivityManager: Process org.briarproject.unofficial (pid 22636) has died
05-19 12:04:13.335 D/ActivityManager: cleanUpApplicationRecord -- 22636
```Android Beta 1Julian DehmJulian Dehmhttps://code.briarproject.org/briar/briar/-/issues/947Bluetooth address is empty in LineageOS guest mode2020-11-19T15:19:18ZTorsten GroteBluetooth address is empty in LineageOS guest modeThis happens on a device with Privacy Guard (even if disabled) when starting Briar (or when trying to add a contact):
![signal-2017-05-09-213424](/uploads/304cd58b9dd6bd7596a9b606143949c5/signal-2017-05-09-213424.png)
Since the user ca...This happens on a device with Privacy Guard (even if disabled) when starting Briar (or when trying to add a contact):
![signal-2017-05-09-213424](/uploads/304cd58b9dd6bd7596a9b606143949c5/signal-2017-05-09-213424.png)
Since the user can not even log in, there is no way this report gets send out via Tor, so it is attached as a screenshot here.https://code.briarproject.org/briar/briar/-/issues/629Test whether Tor hidden service patch is still needed2018-07-31T16:17:46ZakwizgranTest whether Tor hidden service patch is still needed~~Repeat the Tor performance experiments from #115 using Tor 0.2.6.7 with the old and new code to determine the impact of improvements to Tor itself, specifically issue #8239 (https://trac.torproject.org/projects/tor/ticket/8239).~~
Rep...~~Repeat the Tor performance experiments from #115 using Tor 0.2.6.7 with the old and new code to determine the impact of improvements to Tor itself, specifically issue #8239 (https://trac.torproject.org/projects/tor/ticket/8239).~~
Repeat the Tor performance experiments from #115 using Tor 0.2.9.15, with and without our hidden service patch, to see whether our patch still affects performance. Test the patch from issue #19522 (https://trac.torproject.org/projects/tor/ticket/19522) to see whether it would be a suitable alternative to our patch.
If our patch is still needed, update it to address the reviewers' comments from https://trac.torproject.org/projects/tor/ticket/18620. That ticket should be closed, as v2 hidden services are being deprecated. If we need a new patch for v3 hidden services we should open a new ticket.
See discussion on #115. ~~Subtask of #152.~~Android 1.1akwizgranakwizgranhttps://code.briarproject.org/briar/briar/-/issues/944WiFi Transport layer dead when device has been offline for long2020-11-19T15:20:50ZErnir ErlingssonWiFi Transport layer dead when device has been offline for longBriar was running for two days in flight mode but failed to connect when device internet connectivity was restored per WiFi. I failed to check other transports due to a crash ~~that I'm still investigating, it might be that Briar's stabi...Briar was running for two days in flight mode but failed to connect when device internet connectivity was restored per WiFi. I failed to check other transports due to a crash ~~that I'm still investigating, it might be that Briar's stability was compromised.~~
Edit: Unrelated crash due to an error in my save/restore branchhttps://code.briarproject.org/briar/briar/-/issues/377Replace BDF data structures with classes in introduction client2018-04-28T00:17:04ZakwizgranReplace BDF data structures with classes in introduction clientThe introduction client uses BdfDictionary and BdfList for its internal data structures, rather than just for serialisation. This tends to push type checking from compile time to run time. Create classes to represent the client's interna...The introduction client uses BdfDictionary and BdfList for its internal data structures, rather than just for serialisation. This tends to push type checking from compile time to run time. Create classes to represent the client's internal state.Android 1.0Torsten GroteTorsten Grotehttps://code.briarproject.org/briar/briar/-/issues/890Introduction protocol fails for one introducee2017-12-15T13:05:13ZTorsten GroteIntroduction protocol fails for one introduceeLooks like we better rewrite the introduction client: Tried an introduction, both introducees accepted, contact was added for one, but not the other.
I could reproduce this by triggering an abort with #893. When the first response ca...Looks like we better rewrite the introduction client: Tried an introduction, both introducees accepted, contact was added for one, but not the other.
I could reproduce this by triggering an abort with #893. When the first response came in already, the second introduce accepts and sends the ACK directly. Then the introduce accepts taps ACCEPT again which aborts the session, so the contact will not be added. However, the first introducee already received response and ACK and added the contact unilaterally.
What is worse, when aborting the second introducee fail deleting the inactive contact which prevents that contact from ever being added in the future. Torsten GroteTorsten Grotehttps://code.briarproject.org/briar/briar/-/issues/871RSS feed lost2017-08-04T13:52:53ZMegaloxRSS feed lostOur testers imported a regulary updated RSS feed on Friday. We opened the blogs again on monday and no new posts of the RSS feed had arrived.Our testers imported a regulary updated RSS feed on Friday. We opened the blogs again on monday and no new posts of the RSS feed had arrived.Android Beta 2Torsten GroteTorsten Grotehttps://code.briarproject.org/briar/briar/-/issues/845Devices can't communicate via wifi when router is disconnected from the internet2018-03-29T15:43:50ZakwizgranDevices can't communicate via wifi when router is disconnected from the internetThis might be caused by AndroidLanTcpPlugin wrongly thinking that wifi is unavailable because Android reports that the wifi network is disconnected. But that's just a guess.This might be caused by AndroidLanTcpPlugin wrongly thinking that wifi is unavailable because Android reports that the wifi network is disconnected. But that's just a guess.Android Beta 2akwizgranakwizgranhttps://code.briarproject.org/briar/briar/-/issues/138Installation guide2017-07-17T15:28:05ZakwizgranInstallation guideAndroid Beta 1akwizgranakwizgranhttps://code.briarproject.org/briar/briar/-/issues/953NPE: Thread Conversions - ConcurrentSkipListMap when storeMessageId2017-06-09T19:25:49ZTorsten GroteNPE: Thread Conversions - ConcurrentSkipListMap when storeMessageId@ernir looks like there's a bug in your latest code change:
```
05-19 11:59:38.934 E/ACRA: ACRA caught a NullPointerException for org.briarproject.briar
java.lang.NullPointerException
...@ernir looks like there's a bug in your latest code change:
```
05-19 11:59:38.934 E/ACRA: ACRA caught a NullPointerException for org.briarproject.briar
java.lang.NullPointerException
at java.util.concurrent.ConcurrentSkipListMap.put(ConcurrentSkipListMap.java:1546)
at org.briarproject.bramble.api.data.BdfDictionary.of(BdfDictionary.java:26)
at org.briarproject.briar.client.MessageTrackerImpl.storeMessageId(MessageTrackerImpl.java:76)
at org.briarproject.briar.android.threaded.ThreadListControllerImpl$1.run(ThreadListControllerImpl.java:107)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1133)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:607)
at java.lang.Thread.run(Thread.java:761)
```Milestone Ghttps://code.briarproject.org/briar/briar/-/issues/949Investigate error messages from CI runners2017-06-09T19:25:50ZakwizgranInvestigate error messages from CI runnersEvery hour the CI runners are logging errors similar to the following:
```
May 12 06:46:04 ci gitlab-runner[21146]: time="2017-05-12T06:46:04Z" level=error msg="Runner https://code.briarproject.org/ci733e[scrubbed] is not healthy, but wi...Every hour the CI runners are logging errors similar to the following:
```
May 12 06:46:04 ci gitlab-runner[21146]: time="2017-05-12T06:46:04Z" level=error msg="Runner https://code.briarproject.org/ci733e[scrubbed] is not healthy, but will be checked!" #012<nil>
May 12 06:46:04 ci gitlab-ci-multi-runner[21146]: time="2017-05-12T06:46:04Z" level=error msg="Runner https://code.briarproject.org/ci733e[scrubbed] is not healthy, but will be checked!"
May 12 06:46:04 ci gitlab-runner[21146]: time="2017-05-12T06:46:04Z" level=error msg="Checking for builds... forbidden" runner=733eb190 #012<nil>
May 12 06:46:04 ci gitlab-ci-multi-runner[21146]: time="2017-05-12T06:46:04Z" level=error msg="Checking for builds... forbidden" runner=733eb190
May 12 06:46:07 ci gitlab-runner[21146]: time="2017-05-12T06:46:07Z" level=error msg="Checking for builds... forbidden" runner=733eb190 #012<nil>
May 12 06:46:07 ci gitlab-ci-multi-runner[21146]: time="2017-05-12T06:46:07Z" level=error msg="Checking for builds... forbidden" runner=733eb190
May 12 06:46:10 ci gitlab-runner[21146]: time="2017-05-12T06:46:10Z" level=error msg="Checking for builds... forbidden" runner=733eb190 #012<nil>
May 12 06:46:10 ci gitlab-ci-multi-runner[21146]: time="2017-05-12T06:46:10Z" level=error msg="Checking for builds... forbidden" runner=733eb190
May 12 06:46:10 ci gitlab-runner[21146]: time="2017-05-12T06:46:10Z" level=error msg="Runner https://code.briarproject.org/ci733e[scrubbed] is not healthy and will be disabled!" #012<nil>
May 12 06:46:10 ci gitlab-ci-multi-runner[21146]: time="2017-05-12T06:46:10Z" level=error msg="Runner https://code.briarproject.org/ci733e[scrubbed] is not healthy and will be disabled!"
```Milestone GTorsten GroteTorsten Grotehttps://code.briarproject.org/briar/briar/-/issues/948ArrayIndexOutOfBoundsException in VectorDrawable on Startup2017-06-09T19:25:50ZTorsten GroteArrayIndexOutOfBoundsException in VectorDrawable on StartupRight after Briar starts, it crashes on an GT-I9515L running Android 5.0.1 with this trace:
![804206593_51066](/uploads/c03850ad83619206fc77e4ca68cdb772/804206593_51066.jpg)Right after Briar starts, it crashes on an GT-I9515L running Android 5.0.1 with this trace:
![804206593_51066](/uploads/c03850ad83619206fc77e4ca68cdb772/804206593_51066.jpg)Android Beta 1Torsten GroteTorsten Grotehttps://code.briarproject.org/briar/briar/-/issues/946Fab up/down button quick goto's for unread messages in threaded lists is not ...2017-06-09T19:25:50ZErnir ErlingssonFab up/down button quick goto's for unread messages in threaded lists is not always workingIf you enter a threaded list with unread messages the fab buttons aren't appearing when they should most of the time.If you enter a threaded list with unread messages the fab buttons aren't appearing when they should most of the time.Android Beta 1https://code.briarproject.org/briar/briar/-/issues/943Use stable IDs in BriarAdapter2017-06-09T19:25:50ZJulian DehmUse stable IDs in BriarAdapterSince we already have everything at hand (a stable message id) we could use the stableId feature of the recyclerview to improve performance.
https://developer.android.com/reference/android/support/v7/widget/RecyclerView.Adapter.html#setH...Since we already have everything at hand (a stable message id) we could use the stableId feature of the recyclerview to improve performance.
https://developer.android.com/reference/android/support/v7/widget/RecyclerView.Adapter.html#setHasStableIds(boolean)https://code.briarproject.org/briar/briar/-/issues/2095Add option to use system's Tor binary2023-10-10T18:11:51ZNicoAdd option to use system's Tor binaryThis is most likely needed for a release to Debian (~~https://code.briarproject.org/briar/briar-gtk/issues/38~~ https://code.briarproject.org/briar/briar-desktop/-/issues/261).This is most likely needed for a release to Debian (~~https://code.briarproject.org/briar/briar-gtk/issues/38~~ https://code.briarproject.org/briar/briar-desktop/-/issues/261).https://code.briarproject.org/briar/briar/-/issues/941Reblogged RSS post has wrong icon2017-06-09T19:25:50ZakwizgranReblogged RSS post has wrong iconWhen reblogging a post from an RSS feed, the reblogged post has the correct (RSS) icon for the original author when viewed on the device where it was imported:
![device-2017-04-13-145813](/uploads/85b44d910b5c997c7b44642be75c7a16/device...When reblogging a post from an RSS feed, the reblogged post has the correct (RSS) icon for the original author when viewed on the device where it was imported:
![device-2017-04-13-145813](/uploads/85b44d910b5c997c7b44642be75c7a16/device-2017-04-13-145813.png)
But when the reblogged post is viewed on a contact's device, is has an identicon and a trust indicator for the original author, instead of the RSS icon:
![device-2017-04-13-145903](/uploads/80e80b8ff9c9e6cdc8f326dc2ced3e94/device-2017-04-13-145903.png)
If the contact reblogs the post again, the twice-reblogged post has an identicon and a trust indicator for the original author on both devices:
![device-2017-04-13-145950](/uploads/902826ad1a284bbd869f17cbf9d269ca/device-2017-04-13-145950.png)
I guess there's a bug in the code that finds the root post and checks whether it comes from an RSS feed.Android Beta 1akwizgranakwizgranhttps://code.briarproject.org/briar/briar/-/issues/938Screen filter detects Google Play Services on Sony Xperia Tipo2017-06-09T19:25:50ZakwizgranScreen filter detects Google Play Services on Sony Xperia TipoOn the Sony Xperia Tipo (Android 4.0.4), the screen filter warning shows Google Play Services, which I would have expected to be excluded as a system app.
I'm guessing this happens because Google Play Services wasn't part of the origina...On the Sony Xperia Tipo (Android 4.0.4), the screen filter warning shows Google Play Services, which I would have expected to be excluded as a system app.
I'm guessing this happens because Google Play Services wasn't part of the original system image - it was installed when the Android Market app updated itself to Google Play. So I guess the flags don't indicate that Google Play Services is a system app.
If my guess is right, this will happen on all phones that didn't originally have Google Play Services installed. Maybe we should consider adding a special exception for it? But to avoid malicious apps masquerading as Google Play Services (on devices where it isn't installed) to bypass the filter, the exception would need to be based on the signing key rather than the package name.Milestone Gakwizgranakwizgranhttps://code.briarproject.org/briar/briar/-/issues/937Research how to package Bramble as a Cordova plugin2017-06-09T19:25:50ZakwizgranResearch how to package Bramble as a Cordova pluginSubtask of #141.Subtask of #141.Milestone Fakwizgranakwizgranhttps://code.briarproject.org/briar/briar/-/issues/932Panic button sign out response doesn't terminate process2017-06-09T19:25:50ZakwizgranPanic button sign out response doesn't terminate processWhen Briar signs out in response to a panic button intent, relaunching the app brings up the contact list rather than the password screen, with the progress wheel spinning indefinitely.
This happens because the panic button response shu...When Briar signs out in response to a panic button intent, relaunching the app brings up the contact list rather than the password screen, with the progress wheel spinning indefinitely.
This happens because the panic button response shuts down BriarService but doesn't terminate the process.Milestone Gakwizgranakwizgranhttps://code.briarproject.org/briar/briar/-/issues/931Check whether getSystemService() returns null2017-06-09T19:25:50ZakwizgranCheck whether getSystemService() returns nullWe call Context#getSystemService() in various places without checking the return value. Apparently it can return null, so we should check it.We call Context#getSystemService() in various places without checking the return value. Apparently it can return null, so we should check it.https://code.briarproject.org/briar/briar/-/issues/928Move HTML sanitation to DbThread2017-06-09T19:25:50ZTorsten GroteMove HTML sanitation to DbThreadHTML Sanitation currently causes a StrictMode violation:
```
D/StrictMode: StrictMode policy violation; ~duration=407 ms: android.os.StrictMode$StrictModeDiskReadViolation: policy=31 violation=2
at an...HTML Sanitation currently causes a StrictMode violation:
```
D/StrictMode: StrictMode policy violation; ~duration=407 ms: android.os.StrictMode$StrictModeDiskReadViolation: policy=31 violation=2
at android.os.StrictMode$AndroidBlockGuardPolicy.onReadFromDisk(StrictMode.java:1152)
at libcore.io.BlockGuardOs.stat(BlockGuardOs.java:292)
at java.io.File.isDirectory(File.java:524)
at java.io.File.getAbsoluteName(File.java:1099)
at java.io.File.toURL(File.java:1085)
at dalvik.system.DexPathList$Element.findResource(DexPathList.java:477)
at dalvik.system.DexPathList.findResource(DexPathList.java:343)
at dalvik.system.BaseDexClassLoader.findResource(BaseDexClassLoader.java:67)
at java.lang.ClassLoader.getResource(ClassLoader.java:403)
at java.lang.ClassLoader.getResourceAsStream(ClassLoader.java:442)
at java.lang.Class.getResourceAsStream(Class.java:1368)
at org.jsoup.nodes.Entities.loadEntities(Entities.java:240)
at org.jsoup.nodes.Entities.<clinit>(Entities.java:225)
at org.jsoup.nodes.Entities.access$000(Entities.java:17)
at org.jsoup.nodes.Entities$EscapeMode.<clinit>(Entities.java:20)
at org.jsoup.nodes.Document$OutputSettings.<init>(Document.java:371)
at org.jsoup.nodes.Document.<init>(Document.java:18)
at org.jsoup.nodes.Document.createShell(Document.java:42)
at org.jsoup.parser.Parser.parseBodyFragment(Parser.java:128)
at org.jsoup.Jsoup.parseBodyFragment(Jsoup.java:148)
at org.jsoup.Jsoup.clean(Jsoup.java:198)
at org.jsoup.Jsoup.clean(Jsoup.java:215)
at org.briarproject.briar.util.HtmlUtils.clean(HtmlUtils.java:15)
```
The `clean()` method should be called right after the blog posts are retrieved from disk to prevent that.Milestone GTorsten GroteTorsten Grotehttps://code.briarproject.org/briar/briar/-/issues/926ClassCastException when handling splash screen intent2017-06-09T19:25:51ZakwizgranClassCastException when handling splash screen intentSteps to reproduce:
* Sign into Briar normally
* Open a private conversation that includes at least one message
* Send a splash screen intent: `am start -a android.intent.action.MAIN -n org.briarproject.briar/org.briarproject.briar.an...Steps to reproduce:
* Sign into Briar normally
* Open a private conversation that includes at least one message
* Send a splash screen intent: `am start -a android.intent.action.MAIN -n org.briarproject.briar/org.briarproject.briar.android.splash.SplashScreenActivity`
* The contact list is shown
* Sign out of Briar
Stacktrace:
```
03-29 09:19:26.889 3284-3284/org.briarproject.briar E/ACRA: ACRA caught a RuntimeException for org.briarproject.briar
java.lang.RuntimeException: Unable to start activity ComponentInfo{org.briarproject.briar/org.briarproject.briar.android.contact.ConversationActivity}: android.view.InflateException: Binary XML file line #27: Binary XML file line #27: Error inflating class org.thoughtcrime.securesms.components.emoji.EmojiTextView
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2450)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2510)
at android.app.ActivityThread.-wrap11(ActivityThread.java)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1363)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:148)
at android.app.ActivityThread.main(ActivityThread.java:5461)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
Caused by: android.view.InflateException: Binary XML file line #27: Binary XML file line #27: Error inflating class org.thoughtcrime.securesms.components.emoji.EmojiTextView
at android.view.LayoutInflater.inflate(LayoutInflater.java:539)
at android.view.LayoutInflater.inflate(LayoutInflater.java:423)
at android.view.LayoutInflater.inflate(LayoutInflater.java:374)
at android.support.v7.app.AppCompatDelegateImplV7.setContentView(AppCompatDelegateImplV7.java:276)
at android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:139)
at org.briarproject.briar.android.contact.ConversationActivity.onCreate(ConversationActivity.java:197)
at android.app.Activity.performCreate(Activity.java:6251)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1108)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2403)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2510)
at android.app.ActivityThread.-wrap11(ActivityThread.java)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1363)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:148)
at android.app.ActivityThread.main(ActivityThread.java:5461)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
Caused by: android.view.InflateException: Binary XML file line #27: Error inflating class org.thoughtcrime.securesms.components.emoji.EmojiTextView
at android.view.LayoutInflater.createView(LayoutInflater.java:645)
at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:764)
at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:704)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:835)
at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:798)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:838)
at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:798)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:838)
at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:798)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:838)
at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:798)
at android.view.LayoutInflater.inflate(LayoutInflater.java:515)
at android.view.LayoutInflater.inflate(LayoutInflater.java:423)
at android.view.LayoutInflater.inflate(LayoutInflater.java:374)
at android.support.v7.app.AppCompatDelegateImplV7.setContentView(AppCompatDelegateImplV7.java:276)
at android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:139)
at org.briarproject.briar.android.contact.ConversationActivity.onCreate(ConversationActivity.java:197)
at android.app.Activity.performCreate(Activity.java:6251)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1108)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2403)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2510)
at android.app.ActivityThread.-wrap11(ActivityThread.java)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1363)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:148)
at android.app.ActivityThread.main(ActivityThread.java:5461)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
Caused by: java.lang.reflect.InvocationTargetException
at java.lang.reflect.Constructor.newInstance(Native Method)
at android.view.LayoutInflater.createView(LayoutInflater.java:619)
at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:764)
at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:704)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:835)
at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:798)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:838)
at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:798)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:838)
at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:798)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:838)
at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:798)
at android.view.LayoutInflater.inflate(LayoutInflater.java:515)
at android.view.LayoutInflater.inflate(LayoutInflater.java:423)
at android.view.LayoutInflater.inflate(LayoutInflater.java:374)
at android.support.v7.app.AppCompatDelegateImplV7.setContentView(AppCompatDelegateImplV7.java:276)
at android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:139)
at org.briarproject.briar.android.contact.ConversationActivity.onCreate(ConversationActivity.java:197)
at android.app.Activity.performCreate(Activity.java:6251)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1108)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2403)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2510)
at android.app.ActivityThread.-wrap11(ActivityThread.java)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1363)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:148)
at android.app.ActivityThread.main(ActivityThread.java:5461)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
Caused by: java.lang.ClassCastException: android.view.ContextThemeWrapper cannot be cast to org.briarproject.briar.android.activity.BaseActivity
at org.thoughtcrime.securesms.components.emoji.EmojiProvider.getInstance(EmojiProvider.java:80)
at org.thoughtcrime.securesms.components.emoji.EmojiTextView.setText(EmojiTextView.java:45)
at android.widget.TextView.<init>(TextView.java:1401)
at android.widget.TextView.<init>(TextView.java:671)
at org.thoughtcrime.securesms.components.emoji.EmojiTextView.<init>(EmojiTextView.java:38)
at org.thoughtcrime.securesms.components.emoji.EmojiTextView.<init>(EmojiTextView.java:33)
at java.lang.reflect.Constructor.newInstance(Native Method)
at android.view.LayoutInflater.createView(LayoutInflater.java:619)
at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:764)
at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:704)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:835)
at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:798)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:838)
at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:798)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:838)
at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:798)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:838)
at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:798)
at android.view.LayoutInflater.inflate(LayoutInflater.java:515)
at android.view.LayoutInflater.inflate(LayoutInflater.java:423)
at android.view.LayoutInflater.inflate(LayoutInflater.java:374)
at android.support.v7.app.AppCompatDelegateImplV7.setContentView(AppCompatDelegateImplV7.java:276)
at android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:139)
at org.briarproject.briar.android.contact.ConversationActivity.onCreate(ConversationActivity.java:197)
at android.app.Activity.performCreate(Activity.java:6251)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1108)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2403)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2510)
at android.app.ActivityThread.-wrap11(ActivityThread.java)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1363)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:148)
at android.app.ActivityThread.main(ActivityThread.java:5461)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
```Milestone Gakwizgranakwizgranhttps://code.briarproject.org/briar/briar/-/issues/925Touching the Panic app list crashes if no market is installed.2017-06-09T19:25:51ZJulian DehmTouching the Panic app list crashes if no market is installed.If the list of connected panic apps is <= 1 and you press on it Briar will crash if no market is installed:
`org.briarproject.briar E/ACRA: ACRA caught a ActivityNotFoundException for org.briarproject.briar
android.content.ActivityNo...If the list of connected panic apps is <= 1 and you press on it Briar will crash if no market is installed:
`org.briarproject.briar E/ACRA: ACRA caught a ActivityNotFoundException for org.briarproject.briar
android.content.ActivityNotFoundException: No Activity found to handle Intent { act=android.intent.action.VIEW dat=market://details?id=info.guardianproject.ripple }`Milestone GJulian DehmJulian Dehmhttps://code.briarproject.org/briar/briar/-/issues/919Tester was confused by hidden composition area in forums and private groups2017-06-09T19:25:51ZakwizgranTester was confused by hidden composition area in forums and private groupsA tester thought she could only reply to messages in a private group but couldn't start new threads, because the composition area was hidden until she pressed reply. Another tester mentioned the same issue with forums in a previous test.A tester thought she could only reply to messages in a private group but couldn't start new threads, because the composition area was hidden until she pressed reply. Another tester mentioned the same issue with forums in a previous test.https://code.briarproject.org/briar/briar/-/issues/916Disabled menu items are not greyed out on all devices2017-06-09T19:25:51ZakwizgranDisabled menu items are not greyed out on all devicesDisabled menu items look the same as enabled items on some devices (possibly the Sony Xperia Tipo, but I didn't make a note). We should make sure they're visually distinct.Disabled menu items look the same as enabled items on some devices (possibly the Sony Xperia Tipo, but I didn't make a note). We should make sure they're visually distinct.https://code.briarproject.org/briar/briar/-/issues/915Fix ForumActivityTest2017-06-09T19:25:51ZakwizgranFix ForumActivityTestForumActivityTest#testNestedEntries() has been failing since 17 December.
```
junit.framework.AssertionFailedError
at junit.framework.Assert.fail(Assert.java:55)
at junit.framework.Assert.assertTrue(Assert.java:22)
at junit.framework...ForumActivityTest#testNestedEntries() has been failing since 17 December.
```
junit.framework.AssertionFailedError
at junit.framework.Assert.fail(Assert.java:55)
at junit.framework.Assert.assertTrue(Assert.java:22)
at junit.framework.Assert.assertTrue(Assert.java:31)
at org.briarproject.briar.android.forum.ForumActivityTest.testNestedEntries(ForumActivityTest.java:120)
```Milestone GTorsten GroteTorsten Grotehttps://code.briarproject.org/briar/briar/-/issues/914Simplify SecureRandom implementation2017-06-09T19:25:51ZakwizgranSimplify SecureRandom implementationOur current SecureRandom implementation involves XORing a Fortuna-based PRNG with the system's default SecureRandom implementation. This is meant to help protect against any weaknesses in the system's PRNG, such as the Android SecureRand...Our current SecureRandom implementation involves XORing a Fortuna-based PRNG with the system's default SecureRandom implementation. This is meant to help protect against any weaknesses in the system's PRNG, such as the Android SecureRandom bug (CVE-2013-7372, https://android-developers.googleblog.com/2013/08/some-securerandom-thoughts.html). However, the construct is quite complex and not properly documented. We should simplify it and document it.Milestone Ghttps://code.briarproject.org/briar/briar/-/issues/913Password strength estimator produces poor results2018-05-22T14:34:15ZakwizgranPassword strength estimator produces poor resultsThe estimates produced by the password strength estimator don't correspond to people's expectations.
The estimate is based on a combination of the number of unique characters and the classes those characters are drawn from (lowercase, u...The estimates produced by the password strength estimator don't correspond to people's expectations.
The estimate is based on a combination of the number of unique characters and the classes those characters are drawn from (lowercase, uppercase, digits and other). We should consider either using a simpler formula - for example, just the length of the password - or a proven formula such as zxcvbn (https://github.com/dropbox/zxcvbn).
This was also reported by a user in a recent test.Milestone Gakwizgranakwizgranhttps://code.briarproject.org/briar/briar/-/issues/912StreamEncrypterImpl should reject invalid padding length2017-06-09T19:25:52ZakwizgranStreamEncrypterImpl should reject invalid padding lengthPassing a negative paddingLength to StreamEncrypterImpl#writeFrame() causes an infinite loop. The arguments should be more strictly validated.Passing a negative paddingLength to StreamEncrypterImpl#writeFrame() causes an infinite loop. The arguments should be more strictly validated.Milestone Gakwizgranakwizgranhttps://code.briarproject.org/briar/briar/-/issues/911HTML in blog posts should be sanitised2017-06-09T19:25:52ZakwizgranHTML in blog posts should be sanitisedLinks in manually created blog posts can specify any protocol. This can be used to specify the `intent://` protocol handler, which makes creation of intents possible. This can be used to crash the app when the user clicks on a link. Othe...Links in manually created blog posts can specify any protocol. This can be used to specify the `intent://` protocol handler, which makes creation of intents possible. This can be used to crash the app when the user clicks on a link. Other malicious actions might be possible.
All HTML should be passed through the HTML sanitiser before being rendered, and we should ensure that the sanitiser removes URLs with unknown protocols.Milestone GTorsten GroteTorsten Grotehttps://code.briarproject.org/briar/briar/-/issues/967Tap target didn't fully expand2018-06-11T11:29:59ZakwizgranTap target didn't fully expandThe tap target failed to expand to its full size, causing the text to be overlayed on other elements. This happened on a Galaxy Nexus running Android 6.0.1/LineageOS 13.0.The tap target failed to expand to its full size, causing the text to be overlayed on other elements. This happened on a Galaxy Nexus running Android 6.0.1/LineageOS 13.0.https://code.briarproject.org/briar/briar/-/issues/106Release beta versions through Google Play2017-07-17T15:02:45ZakwizgranRelease beta versions through Google PlayAndroid Beta 1akwizgranakwizgranhttps://code.briarproject.org/briar/briar/-/issues/957Importing RSS feed case-sensitivity2017-07-04T15:10:19ZErnir ErlingssonImporting RSS feed case-sensitivityHad a test user who was unable to import an RSS feed, the button always stayed disabled. Turned out to be a case issue, we're only accepting lower-case but at the same time we're capping the first letter of the URL..Had a test user who was unable to import an RSS feed, the button always stayed disabled. Turned out to be a case issue, we're only accepting lower-case but at the same time we're capping the first letter of the URL..Android Beta 1akwizgranakwizgranhttps://code.briarproject.org/briar/briar/-/issues/951Remove visibility indicators from private group join messages2017-07-04T15:10:19ZakwizgranRemove visibility indicators from private group join messagesThis is an experiment to see if we can reduce the confusion about revealing contacts by not exposing this feature until the user navigates to the reveal contacts screen, where we can show onboarding.
Related to #801, #854.This is an experiment to see if we can reduce the confusion about revealing contacts by not exposing this feature until the user navigates to the reveal contacts screen, where we can show onboarding.
Related to #801, #854.Android Beta 1akwizgranakwizgranhttps://code.briarproject.org/briar/briar/-/issues/574Upgrade Tor to 0.2.92017-07-03T07:30:35ZakwizgranUpgrade Tor to 0.2.9Android Beta 1akwizgranakwizgranhttps://code.briarproject.org/briar/briar/-/issues/968H2 crashes on Android 4.0.42017-07-03T14:20:22ZakwizgranH2 crashes on Android 4.0.4Briar fails to start on the Sony Xperia Tipo (Android 4.0.4) because H2 crashes with the following stacktrace:
```
06-30 09:51:48.069 2888-3099/org.briarproject.briar E/ACRA: ACRA caught a NoClassDefFoundError for org.briarproject.briar
...Briar fails to start on the Sony Xperia Tipo (Android 4.0.4) because H2 crashes with the following stacktrace:
```
06-30 09:51:48.069 2888-3099/org.briarproject.briar E/ACRA: ACRA caught a NoClassDefFoundError for org.briarproject.briar
java.lang.NoClassDefFoundError: java.util.concurrent.ThreadLocalRandom
at org.h2.util.MathUtils.randomBytes(MathUtils.java:290)
at org.h2.engine.User.setUserPasswordHash(User.java:71)
at org.h2.engine.Engine.openSession(Engine.java:72)
at org.h2.engine.Engine.openSession(Engine.java:176)
at org.h2.engine.Engine.createSessionAndValidate(Engine.java:154)
at org.h2.engine.Engine.createSession(Engine.java:137)
at org.h2.engine.Engine.createSession(Engine.java:27)
at org.h2.engine.SessionRemote.connectEmbeddedOrServer(SessionRemote.java:354)
at org.h2.jdbc.JdbcConnection.<init>(JdbcConnection.java:116)
at org.h2.jdbc.JdbcConnection.<init>(JdbcConnection.java:100)
at org.h2.Driver.connect(Driver.java:69)
at java.sql.DriverManager.getConnection(DriverManager.java:175)
at org.briarproject.bramble.db.H2Database.createConnection(H2Database.java:93)
at org.briarproject.bramble.db.JdbcDatabase.startTransaction(JdbcDatabase.java:364)
at org.briarproject.bramble.db.JdbcDatabase.open(JdbcDatabase.java:271)
at org.briarproject.bramble.db.H2Database.open(H2Database.java:46)
at org.briarproject.bramble.db.DatabaseComponentImpl.open(DatabaseComponentImpl.java:117)
at org.briarproject.bramble.lifecycle.LifecycleManagerImpl.startServices(LifecycleManagerImpl.java:122)
at org.briarproject.briar.android.BriarService$1.run(BriarService.java:98)
```
It looks like the recent H2 upgrade has introduce a dependency on a newer version of Java.Android Beta 1akwizgranakwizgranhttps://code.briarproject.org/briar/briar/-/issues/969Galaxy S3 can not send message in private conversation2017-07-03T15:42:17ZTorsten GroteGalaxy S3 can not send message in private conversationDuring a recent user test, one of the testers was unable to send private messages. Clicking the send button did just not work. The workaround was to close the softkeyboard. Then, the send button worked.
Maybe related to our tap jacking ...During a recent user test, one of the testers was unable to send private messages. Clicking the send button did just not work. The workaround was to close the softkeyboard. Then, the send button worked.
Maybe related to our tap jacking protection?https://code.briarproject.org/briar/briar/-/issues/970Settings title cut/ellipsized2017-07-03T14:20:23ZJulian DehmSettings title cut/ellipsizedThe german translations for the notification settings exceed the display size on some phones.
<img src="https://code.briarproject.org/goapunk/briar/raw/fileStorage/screens/Settings-translation.png" width="256">
We should change the ti...The german translations for the notification settings exceed the display size on some phones.
<img src="https://code.briarproject.org/goapunk/briar/raw/fileStorage/screens/Settings-translation.png" width="256">
We should change the title to something more concise and provide an explanation in the summary field.Julian DehmJulian Dehmhttps://code.briarproject.org/briar/briar/-/issues/971Detect and report Tor crashes2022-07-20T10:38:39ZakwizgranDetect and report Tor crasheshttps://code.briarproject.org/briar/briar/-/issues/972Allow user to choose security profile2022-10-27T17:43:53ZTorsten GroteAllow user to choose security profileThis is an idea for how to make Briar easier to use: When the user creates her account, we could ask the user to choose one of three security options: low, medium and high security (that come with a description about what they mean exact...This is an idea for how to make Briar easier to use: When the user creates her account, we could ask the user to choose one of three security options: low, medium and high security (that come with a description about what they mean exactly).
Based on what the user chooses, we can adapt certain settings or simplify certain things, so it gets easier to use. For example, if the user chooses medium security we could show private notifications on the lock screen. If they chose low, we could even show the content of messages on the lock screen (crazy, I know). In that case, we could also reveal contacts by default in private groups, for example. If a high security profile has been choose, we do not show any notifications on the lock screen and we display a warning before clicked links are opened. The latter warning would not be shown on a low security profile.
The idea is that Briar would be a useful and valuable tool also for users with lower security but higher convenience requirements.
**Addition from #2138 on 26th of July 2021 by @nicoalt:**
With the increased interest in disaster communication and the upcoming research on [multi-hop social mesh](https://code.briarproject.org/briar/briar/-/issues/1816) and [public mesh](https://code.briarproject.org/briar/briar/-/issues/1817), it might be cool if users could specify their security settings in Briar, similar to [Tor Browser's security settings](https://tb-manual.torproject.org/security-settings/). Tor Browser's settings could translate to Briar like this:
* Standard (I would rather call it "disaster" or "insecure"): public mesh
* Safer: multi-hop social mesh
* Safest: single-hop social mesh like at the moment
![Tor Browser's security settings screenshot](/uploads/0cb63741449cdaebc37c487fad810d67/security-settings-safest.png)
I can see, though, that this is both difficult to implement and difficult to understand for users, but I'm still curious what UX experts like @elioqoshi think about it. If we don't do security settings but want to provide a solution with public mesh, I think forking Briar is the only viable alternative we have.https://code.briarproject.org/briar/briar/-/issues/973Add 'Select All' Button to Sharing Screens2020-11-15T10:20:33ZTorsten GroteAdd 'Select All' Button to Sharing ScreensMessages traversal in a social graph improves with each added share relationship between contacts. This is especially true for forums, but maybe also blogs and (reveal contacts of) private groups. In order to encourage sharing, I propose...Messages traversal in a social graph improves with each added share relationship between contacts. This is especially true for forums, but maybe also blogs and (reveal contacts of) private groups. In order to encourage sharing, I propose to add a "select all" button to the respective sharing/reveal screens that selects all selectable contacts and still allows the user to unselect individual contacts before proceeding.https://code.briarproject.org/briar/briar/-/issues/974Show Onboarding for new Forums and Groups2020-11-19T15:07:21ZTorsten GroteShow Onboarding for new Forums and GroupsWhen a user first created a forum or a private group, we should show an onboarding screen that includes and action to open the sharing/invite screen.When a user first created a forum or a private group, we should show an onboarding screen that includes and action to open the sharing/invite screen.https://code.briarproject.org/briar/briar/-/issues/975Load group item perspective before creating the Items2020-11-19T15:06:22ZJulian DehmLoad group item perspective before creating the ItemsCurrently, the perspective/creator of a group is loaded concurrently with the items. If the items are loaded before the creator, the perspective will be displayed wrongly (race condition).
Quote from @grote
>If I remember correctly, i...Currently, the perspective/creator of a group is loaded concurrently with the items. If the items are loaded before the creator, the perspective will be displayed wrongly (race condition).
Quote from @grote
>If I remember correctly, it would be better to change things so the perspective for the messages is known before they are created and then it can be passed to the message constructor instead of dynamically changing the adapter. Since this code is shared with forums, it might not be a trivial change though.
(see !532 for the initial discussion)https://code.briarproject.org/briar/briar/-/issues/976Dark theme2019-04-25T09:18:03ZakwizgranDark themeA user asked for a dark theme.A user asked for a dark theme.Android 1.1Torsten GroteTorsten Grotehttps://code.briarproject.org/briar/briar/-/issues/977Crash when opening a blog2017-07-07T17:43:18ZakwizgranCrash when opening a blogAn anonymous user reported the following crash with Briar 0.13-alpha8 (an old build, so it may be fixed already):
```
java.lang.IllegalArgumentException
at org.briarproject.briar.sharing.SharingManagerImpl.respondToInvitation(Sh...An anonymous user reported the following crash with Briar 0.13-alpha8 (an old build, so it may be fixed already):
```
java.lang.IllegalArgumentException
at org.briarproject.briar.sharing.SharingManagerImpl.respondToInvitation(SharingManagerImpl.java:271)
at org.briarproject.briar.android.contact.ConversationActivity.respondToBlogRequest(ConversationActivity.java:1030)
at org.briarproject.briar.android.contact.ConversationActivity.access$3100(ConversationActivity.java:118)
at org.briarproject.briar.android.contact.ConversationActivity$26.run(ConversationActivity.java:969)
at org.briarproject.briar.android.controller.DbControllerImpl$1.run(DbControllerImpl.java:37)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1133)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:607)
at java.lang.Thread.run(Thread.java:761)
```
"Crashed opening a Briar blog (RSS repost) shared via chat."
Android 7.1.2, Briar commit ID 7929ba9.Android Beta 1akwizgranakwizgranhttps://code.briarproject.org/briar/briar/-/issues/978Add preference for using tor only when having power2019-02-21T10:34:01ZGreg TroxelAdd preference for using tor only when having power(Sorry if this is a dup; I searched but am not confident.)
I just built and installed Briar after being absent for a while. I see there's a preference for using tor never, on wifi, and on cellular. That's great for some, but doesn't a...(Sorry if this is a dup; I searched but am not confident.)
I just built and installed Briar after being absent for a while. I see there's a preference for using tor never, on wifi, and on cellular. That's great for some, but doesn't address my problem. I realize there is tension with UX and complicated config, but given that having a HS is very very costly power wise, and outbound tor is somewhat costly, I'd like to see a config for "Use Tor when not charging" that is "no, outbound only, outbound and inbound". This would probably let me start running briar, and I suspect would let others do so as well.Android 1.1Torsten GroteTorsten Grotehttps://code.briarproject.org/briar/briar/-/issues/979Removing contact fails after sharing blog2017-07-21T10:27:48ZakwizgranRemoving contact fails after sharing blogAfter sharing an RSS blog with a contact, both users get the following exception when trying to remove the contact:
```
07-07 17:46:07.045 7863-7923/org.briarproject.briar.beta W/ConversationActivity: org.briarproject.bramble.api.db.DbE...After sharing an RSS blog with a contact, both users get the following exception when trying to remove the contact:
```
07-07 17:46:07.045 7863-7923/org.briarproject.briar.beta W/ConversationActivity: org.briarproject.bramble.api.db.DbException
org.briarproject.bramble.api.db.DbException
at org.briarproject.briar.sharing.SharingManagerImpl.getSession(SharingManagerImpl.java:161)
at org.briarproject.briar.sharing.SharingManagerImpl.removingShareable(SharingManagerImpl.java:451)
at org.briarproject.briar.sharing.BlogSharingManagerImpl.removingBlog(BlogSharingManagerImpl.java:70)
at org.briarproject.briar.blog.BlogManagerImpl.removeBlog(BlogManagerImpl.java:224)
at org.briarproject.briar.blog.BlogManagerImpl.removingContact(BlogManagerImpl.java:119)
at org.briarproject.bramble.contact.ContactManagerImpl.removeContact(ContactManagerImpl.java:175)
at org.briarproject.bramble.contact.ContactManagerImpl.removeContact(ContactManagerImpl.java:137)
at org.briarproject.briar.android.contact.ConversationActivity$19.run(ConversationActivity.java:810)
at org.briarproject.briar.android.controller.DbControllerImpl$1.run(DbControllerImpl.java:37)
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 is on the 977-crash-when-opening-rss-blog branch with freshly created accounts.Android Beta 1Torsten GroteTorsten Grotehttps://code.briarproject.org/briar/briar/-/issues/980System dialogs can trigger the screenfilter warning2018-01-24T15:41:00ZJulian DehmSystem dialogs can trigger the screenfilter warningWhen opening the c&p menu on an EditText (for example) clicking close to the menu (e.g. on the EditText itself) the screenfilter warning sometimes gets triggered.When opening the c&p menu on an EditText (for example) clicking close to the menu (e.g. on the EditText itself) the screenfilter warning sometimes gets triggered.https://code.briarproject.org/briar/briar/-/issues/981Add settings to mute/disable notifications for specific groups/forums/blogs/c...2020-11-19T14:59:56ZJulian DehmAdd settings to mute/disable notifications for specific groups/forums/blogs/contactsLarge groups for example can be annoying because a lot of messages arrive at any time of the day. There should be an option to disable notifications for specific groups/.../....
related: #330Large groups for example can be annoying because a lot of messages arrive at any time of the day. There should be an option to disable notifications for specific groups/.../....
related: #330https://code.briarproject.org/briar/briar/-/issues/617Protocol versioning2018-05-03T16:43:58ZakwizgranProtocol versioningAll protocols should include version information, and implementations should respond appropriately to versions they don't know how to handle.All protocols should include version information, and implementations should respond appropriately to versions they don't know how to handle.Android 1.0akwizgranakwizgranhttps://code.briarproject.org/briar/briar/-/issues/982Crash when creating parent stack on Android 4.0.42017-08-01T16:58:38ZakwizgranCrash when creating parent stack on Android 4.0.4The Sony Xperia Tipo (Android 4.0.4) crashed with the following stacktrace when a blog invitation was received:
```
07-14 10:41:01.999 3782-3782/org.briarproject.briar.beta E/ACRA: ACRA caught a IllegalArgumentException for org.briarpro...The Sony Xperia Tipo (Android 4.0.4) crashed with the following stacktrace when a blog invitation was received:
```
07-14 10:41:01.999 3782-3782/org.briarproject.briar.beta E/ACRA: ACRA caught a IllegalArgumentException for org.briarproject.briar.beta
java.lang.IllegalArgumentException: android.content.pm.PackageManager$NameNotFoundException: ComponentInfo{org.briarproject.briar.beta/org.briarproject.briar.beta.android.navdrawer.NavDrawerActivity}
at android.support.v4.app.TaskStackBuilder.addParentStack(TaskStackBuilder.java:247)
at android.support.v4.app.TaskStackBuilder.addParentStack(TaskStackBuilder.java:226)
at org.briarproject.briar.android.AndroidNotificationManagerImpl.updateContactNotification(AndroidNotificationManagerImpl.java:315)
at org.briarproject.briar.android.AndroidNotificationManagerImpl.access$1200(AndroidNotificationManagerImpl.java:78)
at org.briarproject.briar.android.AndroidNotificationManagerImpl$3.run(AndroidNotificationManagerImpl.java:268)
at android.os.Handler.handleCallback(Handler.java:605)
at android.os.Handler.dispatchMessage(Handler.java:92)
at android.os.Looper.loop(Looper.java:137)
at android.app.ActivityThread.main(ActivityThread.java:4424)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:511)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:817)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:584)
at dalvik.system.NativeStart.main(Native Method)
Caused by: android.content.pm.PackageManager$NameNotFoundException: ComponentInfo{org.briarproject.briar.beta/org.briarproject.briar.beta.android.navdrawer.NavDrawerActivity}
at android.app.ApplicationPackageManager.getActivityInfo(ApplicationPackageManager.java:223)
at android.support.v4.app.NavUtils.getParentActivityName(NavUtils.java:301)
at android.support.v4.app.NavUtils.getParentActivityIntent(NavUtils.java:262)
at android.support.v4.app.TaskStackBuilder.addParentStack(TaskStackBuilder.java:240)
at android.support.v4.app.TaskStackBuilder.addParentStack(TaskStackBuilder.java:226)
at org.briarproject.briar.android.AndroidNotificationManagerImpl.updateContactNotification(AndroidNotificationManagerImpl.java:315)
at org.briarproject.briar.android.AndroidNotificationManagerImpl.access$1200(AndroidNotificationManagerImpl.java:78)
at org.briarproject.briar.android.AndroidNotificationManagerImpl$3.run(AndroidNotificationManagerImpl.java:268)
at android.os.Handler.handleCallback(Handler.java:605)
at android.os.Handler.dispatchMessage(Handler.java:92)
at android.os.Looper.loop(Looper.java:137)
at android.app.ActivityThread.main(ActivityThread.java:4424)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:511)
```
It makes sense to get a `NameNotFoundException` for `org.briarproject.briar.beta.android.navdrawer.NavDrawerActivity` because the package name is wrong - it should be `org.briarproject.briar.android.navdrawer.NavDrawerActivity` (without the `beta`). So it looks like this crash could be related to setting the package name in `build.gradle`.Android Beta 1akwizgranakwizgranhttps://code.briarproject.org/briar/briar/-/issues/983Explain why the app asks for certain permissions or privileges2021-01-15T14:18:37ZSok PuppetteExplain why the app asks for certain permissions or privilegesI just installed this from Google Play and was presented with an intimidating list of privileges.
I don't *want* the app to know about my WiFi environment (or even to know whether I'm on WiFi or not; turning off Tor on WiFi is at best a...I just installed this from Google Play and was presented with an intimidating list of privileges.
I don't *want* the app to know about my WiFi environment (or even to know whether I'm on WiFi or not; turning off Tor on WiFi is at best a misfeature anyway). I have no intention of *ever* using Bluetooth for anything chat related, including contact exchange, and I don't want any unnecessary programs to have access to it. I'm unlikely to ever send a picture with it, and would prefer that it have no ability to capture any images or audio from the environment. I have no idea what the "app history" permission or whatever it is is for, but other than OrBot I don't see why your app should have any knowledge of anything that's going on.
All of those privileges just add attack surface. The Android platform is already scary enough without giving away extra information to a program whose whole purpose is to communicate with potentially hostile remote entities.
I understand that you may have features that rely on those privileges, and that some/many/most users may want those features... but as I understand it the new "right" way to do that on Android is to ask for the privilege when the user actually tries to use the feature. Given that you're a privacy app, I'd also suggest that you clearly explain the risks and justifications when you ask.
Thanks for the hard work on the app, by the way.CleopatraCleopatrahttps://code.briarproject.org/briar/briar/-/issues/984Show how messages were transported2020-11-19T14:55:03ZDale RuaneShow how messages were transportedIt would be pretty cool if you could click on a received or sent message and see over which medium it was sent.It would be pretty cool if you could click on a received or sent message and see over which medium it was sent.https://code.briarproject.org/briar/briar/-/issues/965Forum empty state message still refers to pen icon2018-03-28T11:39:17ZakwizgranForum empty state message still refers to pen iconThe forum empty state message says "Use the pen icon at the top to compose the first post". The pen icon no longer exists so this text should be removed.The forum empty state message says "Use the pen icon at the top to compose the first post". The pen icon no longer exists so this text should be removed.Android Beta 2akwizgranakwizgranhttps://code.briarproject.org/briar/briar/-/issues/964Buttons on private group messages are cropped2018-11-15T11:39:12ZakwizgranButtons on private group messages are croppedOn the Galaxy Nexus, but not on the Moto G 4G or Moto E3, the buttons on private group messages are cropped so the text isn't fully visible:
![Screenshot_2017-05-31-23-50-57](/uploads/34f209c7540486a337fb144dc59b4c1a/Screenshot_2017-05-...On the Galaxy Nexus, but not on the Moto G 4G or Moto E3, the buttons on private group messages are cropped so the text isn't fully visible:
![Screenshot_2017-05-31-23-50-57](/uploads/34f209c7540486a337fb144dc59b4c1a/Screenshot_2017-05-31-23-50-57.png)Sponsor 2.1Torsten GroteTorsten Grotehttps://code.briarproject.org/briar/briar/-/issues/985Encrypted voice communication (voice/video calls)2022-10-26T19:35:27ZTorrio TorrioEncrypted voice communication (voice/video calls)It would be nice to have encrypted voice communication over Tor, if latency is the issue it could function like a simplex walkie talkie where you have to press a PTT button to speak and than depress the button and wait for the response.It would be nice to have encrypted voice communication over Tor, if latency is the issue it could function like a simplex walkie talkie where you have to press a PTT button to speak and than depress the button and wait for the response.https://code.briarproject.org/briar/briar/-/issues/986Logging wrapper2018-05-24T09:59:19ZakwizgranLogging wrapperCreate a wrapper around the system logger that will allow us to log information without exposing it to the system logs, and read that information back in the case of a crash without requiring the READ_LOGS permission.Create a wrapper around the system logger that will allow us to log information without exposing it to the system logs, and read that information back in the case of a crash without requiring the READ_LOGS permission.Android 1.1akwizgranakwizgranhttps://code.briarproject.org/briar/briar/-/issues/963Threaded Conversation: No Unread Button when new message partly visible2020-11-19T15:13:36ZakwizgranThreaded Conversation: No Unread Button when new message partly visibleIf a message is received in a private group while the group is open, the message doesn't appear until the screen is rotated.
This may be device-dependent: it happens on the Moto G 4G and the Moto E3, but not on the Galaxy Nexus.If a message is received in a private group while the group is open, the message doesn't appear until the screen is rotated.
This may be device-dependent: it happens on the Moto G 4G and the Moto E3, but not on the Galaxy Nexus.https://code.briarproject.org/briar/briar/-/issues/961Minor UX issue with reblogs and contact messaging2019-02-27T10:25:16ZErnir ErlingssonMinor UX issue with reblogs and contact messagingMargins are missing in the bottom area between the screen border and between the input area and button. Button also seems wider than the input area which is probably missing a shadow due to elevation
See screenshots:
![Screenshot_2...Margins are missing in the bottom area between the screen border and between the input area and button. Button also seems wider than the input area which is probably missing a shadow due to elevation
See screenshots:
![Screenshot_2017-05-31-11-14-05](/uploads/4bb202defb5e3589d521318eb200d48a/Screenshot_2017-05-31-11-14-05.png)
![Screenshot_2017-05-31-11-22-04](/uploads/d37e09cf19b5ad2bc194c7a561289039/Screenshot_2017-05-31-11-22-04.png)https://code.briarproject.org/briar/briar/-/issues/960Contact Introduction confusions and redundancies2019-04-16T13:38:29ZErnir ErlingssonContact Introduction confusions and redundancies***Background***
This ticket lists all the issues observed during contact introduction during user testing and a robust internal test. Some of these might be "features" or already listed as issues in other tickets.
***Results***
...***Background***
This ticket lists all the issues observed during contact introduction during user testing and a robust internal test. Some of these might be "features" or already listed as issues in other tickets.
***Results***
1 Some testers were confused why nothing happened after accepting the introduction, confirming #923 .
2 It's possible for the same user to introduce the same two contacts as in a previous introduction even when the two contact's have not yet responded to the initial introduction. Multiple simultaneous introductions, with the same pair of contacts, were confusing for the introduction recipients.
3 If A has declined the introduction that information is not displayed for B until he/she has selected decline/accept introduction. I wonder if it would not be simplest just to display the rejection immediately before B answers ?
4 If two contact's are introduced to one-another that are already contacts, unbeknown to the introducer, there is no need to propagate rejections between the two contacts.
Ex. User's A and B are already connected. User C introduces A and B to one another, A decides to reject. B receives introduction from C but also the rejection from A, which caused confusion. In this case it would have been best to skip displaying the rejection entirely because it is completely irrelevant.https://code.briarproject.org/briar/briar/-/issues/959Large RSS imports take over the feed2017-08-01T15:42:01ZErnir ErlingssonLarge RSS imports take over the feedWhen testers imported RSS feeds, they complained that user blogs were too hard to find.
One suggested using two feeds: one for user blogs and the other for imported RSS feeds. User's could then switch between them with tabs.When testers imported RSS feeds, they complained that user blogs were too hard to find.
One suggested using two feeds: one for user blogs and the other for imported RSS feeds. User's could then switch between them with tabs.https://code.briarproject.org/briar/briar/-/issues/958Importing RSS Feed, UX considerations2020-11-19T15:15:13ZErnir ErlingssonImporting RSS Feed, UX considerations1. We should close the keyboard after the user has pressed the import button
2. One user imported a large RSS feed and before it finished his screen turned off, he had a short setting for an active screen but we should maybe consider met...1. We should close the keyboard after the user has pressed the import button
2. One user imported a large RSS feed and before it finished his screen turned off, he had a short setting for an active screen but we should maybe consider methods to keep the screen on while something is loading, there the device is usually not really idle but the user is simply waiting for the loading to finish before continuing.https://code.briarproject.org/briar/briar/-/issues/955private group: shared with 0 (0 online) despite sharing2017-07-25T17:41:56ZMegaloxprivate group: shared with 0 (0 online) despite sharingI created a private group and shared it with another tester. He joined the group and took part in the conversation. Nonetheless the counter in the header still showed "shared with 0 (0 online)"I created a private group and shared it with another tester. He joined the group and took part in the conversation. Nonetheless the counter in the header still showed "shared with 0 (0 online)"Android Beta 2Torsten GroteTorsten Grotehttps://code.briarproject.org/briar/briar/-/issues/952Use external IP address in LocationUtils if available2020-11-19T15:17:31ZakwizgranUse external IP address in LocationUtils if availableIf we can discover a routable IP address from a network interface then we can look it up in Tor's GeoIP library and use that as one of the sources to determine whether Tor's likely to be blocked in our current location.If we can discover a routable IP address from a network interface then we can look it up in Tor's GeoIP library and use that as one of the sources to determine whether Tor's likely to be blocked in our current location.https://code.briarproject.org/briar/briar/-/issues/950Detect when Tor is failing to connect to the network2022-06-06T13:23:38ZakwizgranDetect when Tor is failing to connect to the networkUnder some circumstances (see #845), Tor can't connect to the network but the app doesn't realise there's no internet connectivity.. Repeatedly trying and failing to connect to guard nodes could cause Tor to mark its preferred guards as ...Under some circumstances (see #845), Tor can't connect to the network but the app doesn't realise there's no internet connectivity.. Repeatedly trying and failing to connect to guard nodes could cause Tor to mark its preferred guards as unreachable and choose new guards sooner than necessary, which could harm anonymity. We should consider setting `DisableNetwork 1` after repeated guard connection failures, then waiting for a connectivity event before trying again.https://code.briarproject.org/briar/briar/-/issues/945Send Message Button bug2019-02-27T13:17:26ZThankgod RichardSend Message Button bugThe send button in the conversation don't send until you close the keyboard.The send button in the conversation don't send until you close the keyboard.https://code.briarproject.org/briar/briar/-/issues/942Compare Briar's Notification behaviour with other chat applications2020-11-19T15:21:55ZErnir ErlingssonCompare Briar's Notification behaviour with other chat applications> @ernir it would be great if you could look into the notification behaviour of other apps in detail (if i had to pick one, i guess it would be whatsapp) and see how they're handling all the corner cases. for example, if a conversation i...> @ernir it would be great if you could look into the notification behaviour of other apps in detail (if i had to pick one, i guess it would be whatsapp) and see how they're handling all the corner cases. for example, if a conversation is open and a message arrives, does it show a notification/vibrate/make a sound/blink the led? same question if the screen is off, same question if the list of conversations is open instead of the conversation itself, etchttps://code.briarproject.org/briar/briar/-/issues/940Update to the latest emoji2018-09-03T12:13:35ZakwizgranUpdate to the latest emojiSignal's emoji code and resources were updated in December 2016:
https://github.com/WhisperSystems/Signal-Android/commit/f7474362ff8bc75fff70ed75a1caad31fd55374e
New emoji were released in March 2017:
http://emojipedia.org/emoji-5.0/Signal's emoji code and resources were updated in December 2016:
https://github.com/WhisperSystems/Signal-Android/commit/f7474362ff8bc75fff70ed75a1caad31fd55374e
New emoji were released in March 2017:
http://emojipedia.org/emoji-5.0/Android 1.1akwizgranakwizgranhttps://code.briarproject.org/briar/briar/-/issues/936Create synchronous incoming sync session for integration tests2018-06-21T15:58:16ZakwizgranCreate synchronous incoming sync session for integration testsThe integration tests use various workarounds to deal with IncomingSession writing messages and acks to the DB asynchronously. Create a simple synchronous incoming session for tests so these workarounds can be removed.The integration tests use various workarounds to deal with IncomingSession writing messages and acks to the DB asynchronously. Create a simple synchronous incoming session for tests so these workarounds can be removed.https://code.briarproject.org/briar/briar/-/issues/935Hostname of feed URL is logged during RSS Feed Import2020-11-19T15:22:32ZTorsten GroteHostname of feed URL is logged during RSS Feed ImportPrivacy leak?
```
04-10 15:14:04.602 D/libc-netbsd: [getaddrinfo]: hostname=www.schneier.com; servname=(null); cache_mode=(null), netid=0; mark=0
04-10 15:14:04.602 D/libc-netbsd: [getaddrinfo]: ai_addrlen=0; ai_canonname=(null); ai_flag...Privacy leak?
```
04-10 15:14:04.602 D/libc-netbsd: [getaddrinfo]: hostname=www.schneier.com; servname=(null); cache_mode=(null), netid=0; mark=0
04-10 15:14:04.602 D/libc-netbsd: [getaddrinfo]: ai_addrlen=0; ai_canonname=(null); ai_flags=4; ai_family=0
```https://code.briarproject.org/briar/briar/-/issues/934Potential SocksSocket resource leak2018-05-11T10:02:32ZJulian DehmPotential SocksSocket resource leakI've seen this a few times now in the log:
```
org.briarproject.briar I/ConnectionRegistryImpl: 1 contacts connected
04-10 12:35:19.584 4701-4712/org.briarproject.briar E/StrictMode: A resource was acquired at attached stack trace but...I've seen this a few times now in the log:
```
org.briarproject.briar I/ConnectionRegistryImpl: 1 contacts connected
04-10 12:35:19.584 4701-4712/org.briarproject.briar E/StrictMode: A resource was acquired at attached stack trace but never released. See java.io.Closeable for information on avoiding resource leaks.
java.lang.Throwable: Explicit termination method 'close' not called
at dalvik.system.CloseGuard.open(CloseGuard.java:180)
at java.net.AbstractPlainSocketImpl.create(AbstractPlainSocketImpl.java:103)
at java.net.Socket.createImpl(Socket.java:470)
at java.net.Socket.connect(Socket.java:603)
at org.briarproject.bramble.socks.SocksSocket.connect(SocksSocket.java:57)
at java.net.Socket.connect(Socket.java:554)
at org.briarproject.bramble.socks.SocksSocketFactory.createSocket(SocksSocketFactory.java:29)
at org.briarproject.bramble.plugin.tor.TorPlugin.createConnection(TorPlugin.java:577)
at org.briarproject.bramble.plugin.tor.TorPlugin$3.run(TorPlugin.java:551)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1133)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:607)
at java.lang.Thread.run(Thread.java:761)
```https://code.briarproject.org/briar/briar/-/issues/930Recent emoji page isn't updated2018-09-03T12:13:56ZakwizgranRecent emoji page isn't updatedSteps to reproduce:
* Choose an emoji from the first page (smilies)
* Switch to the recent emoji page
* Expected behaviour: the chosen emoji has been added to the page
* Actual behaviour: the chosen emoji isn't added until the page is de...Steps to reproduce:
* Choose an emoji from the first page (smilies)
* Switch to the recent emoji page
* Expected behaviour: the chosen emoji has been added to the page
* Actual behaviour: the chosen emoji isn't added until the page is destroyed and recreated
The recent emoji page is destroyed and recreated if you switch to any non-adjacent page, such as animals and plants, so the behaviour is inconsistent depending on which pages you switch to.
The problem occurs because the EmojiPageView doesn't know when its model has been updated. The model can keep a reference to the view (via some listener interface) to notify the view of changes, but the reference must be removed when the view is destroyed and restored when the view is recreated. I had a quick look at this but couldn't find a clean way to implement it in the current structure.Android 1.1akwizgranakwizgranhttps://code.briarproject.org/briar/briar/-/issues/929Non-blocking SettingsManager2020-11-15T10:37:10ZakwizgranNon-blocking SettingsManagerThe SettingsManager interface is inconvenient to use because it needs to be called on the DB thread. Make the interface non-blocking by loading settings at startup and writing them back to the DB in the background when they're updated.The SettingsManager interface is inconvenient to use because it needs to be called on the DB thread. Make the interface non-blocking by loading settings at startup and writing them back to the DB in the background when they're updated.https://code.briarproject.org/briar/briar/-/issues/927The "Change password" option accepts the old password as new2022-07-26T15:34:47ZJulian DehmThe "Change password" option accepts the old password as newIt's possible to "change" the password to the one you currently use.
We should check if the new one differs from the old before activating the change password buttonIt's possible to "change" the password to the one you currently use.
We should check if the new one differs from the old before activating the change password buttonhttps://code.briarproject.org/briar/briar/-/issues/924Tester thought tap target onboarding was a bug2020-11-15T10:43:00ZakwizgranTester thought tap target onboarding was a bugA tester thought the tap target onboarding for the introduction feature was a bug - she held up her phone and asked "Is it meant to look like that?".
Perhaps we should consider using a less bold design, or changing the parameters so tha...A tester thought the tap target onboarding for the introduction feature was a bug - she held up her phone and asked "Is it meant to look like that?".
Perhaps we should consider using a less bold design, or changing the parameters so that the target appears more gradually.https://code.briarproject.org/briar/briar/-/issues/987file transfer2018-06-11T11:21:09ZKarl Hedderichfile transferIs file transfer a feature that is planned? It would be great to at least be able to send pictures :)Is file transfer a feature that is planned? It would be great to at least be able to send pictures :)https://code.briarproject.org/briar/briar/-/issues/988WTF: Briar Mailing list is blocking net neutrality(or tor users)2021-02-04T14:24:18ZqywltgxwWTF: Briar Mailing list is blocking net neutrality(or tor users)Briar is a project that should allow people to be able to talk with each other by respecting their freedom. Thats great and thats why i liked to join the mailing list.
The mailing list itself is blocking me from registration. It tells me...Briar is a project that should allow people to be able to talk with each other by respecting their freedom. Thats great and thats why i liked to join the mailing list.
The mailing list itself is blocking me from registration. It tells me, that i cant register and my registration would have triggered some account blocking.
This is fully against the philosophy of the Briar project.
How to reproduce:
1. Open tor browser
2. Go to https://www.guerrillamail.com to get a free email
3. Go to https://sourceforge.net/projects/briar/lists/briar-devel/index and enter the email you got before and follow the steps. It then asks you to make the famous spam-check with choosing pictures probably every tor users knows from daily use.
At the end when you have successfully done this test, it reports on the top right corner that it have not created the account.
4. Confirm this bugreport with "same net neutrality or tor-blocking here".
Please fix this. Such blocking of anonymous people on a anonymous-supporting project is just crazy.https://code.briarproject.org/briar/briar/-/issues/989I am using Free software and cant find Briar application in the App-Store2017-07-25T11:00:36ZqywltgxwI am using Free software and cant find Briar application in the App-StoreThis is completely strange situation. Of course i am using free Software since long time. I have laying here around the Papers of the FSFE(Free Software Foundation Europe) for Free Android that i hand out to friends.
All good friends of ...This is completely strange situation. Of course i am using free Software since long time. I have laying here around the Papers of the FSFE(Free Software Foundation Europe) for Free Android that i hand out to friends.
All good friends of mine have since years a free phone (except to baseband and some drivers).
I was happy to see Torsten Grote working on this project because he is one of the main persons who stand behind this "Free Android" paper is hand out to friends from the FSFE. I thought that the release of the briar Project would be used to gain more free Software users and say that when you want to get briar you have to use the only propper App-store named F-Droid. Then probably some more people would get known of F-Droid and understand that F-Droid and https://reproducible-builds.org are the main basics for freedom.
Now i am completely blown away. Its exactly the opposite. The only App-Store you can get Briar from is some not-free App-Store from google. You cant get it from a free (as in freedom) App-Store.
WTF?https://code.briarproject.org/briar/briar/-/issues/990"KEEP ME UPDATED" on https://briarproject.org/ is partly broken and breaks so...2017-08-01T10:31:34Zqywltgxw"KEEP ME UPDATED" on https://briarproject.org/ is partly broken and breaks some laws in some countriesThis "KEEP ME UPDATED" seems to be not that proper done.
1. When you did not enter any email into the box and just press "KEEP ME UPDATED" it say "Thanks! We'll keep you updated.".
2. When you enter just something, for example "test" it ...This "KEEP ME UPDATED" seems to be not that proper done.
1. When you did not enter any email into the box and just press "KEEP ME UPDATED" it say "Thanks! We'll keep you updated.".
2. When you enter just something, for example "test" it say "Thanks! We'll keep you updated." but the webpage say at the top left (completely other place then the "KEEP ME UPDATED" button that an email address should be entered.
3. When you enter a real email and then check this email next 10 minutes, you dont get a confirmation email. You dont get anything. No information that you are now in some "newsletter" or something like that. This causes legal problems in many countries. You are not allowed to just send newsletter to some email addresses you have not proven that they are belonging to the person who really wants the newsletter.
What should be done:
1. Dont report "Thanks! We'll keep you updated." when no propper email (or nothing) is been entered.
2. Send out a confirmation email and only when the link there got pressed, only then you are allowed to send email to this person.
3. All the emails that have been collected till now have to be deleted when you dont want to get into legal problems. You are legally not allowed to contact those people because you cant prove that they have registered by themself.Android Beta 2akwizgranakwizgranhttps://code.briarproject.org/briar/briar/-/issues/991Opening private conversation with new contact should hide new contact notific...2020-11-19T14:50:44ZakwizgranOpening private conversation with new contact should hide new contact notificationThe new contact notification that's shown when a contact is introduced should be hidden when opening the contact's private conversation. Touching the notification should open the contact's private conversation.
If multiple contacts have...The new contact notification that's shown when a contact is introduced should be hidden when opening the contact's private conversation. Touching the notification should open the contact's private conversation.
If multiple contacts have been introduced, each contact should be removed from the notification when opening the contact's private conversation, and touching a notification for multiple new contacts should open the contact list. (This is consistent with the behaviour of the private message notification.)https://code.briarproject.org/briar/briar/-/issues/992continuously disconnected/logged out from Briar2021-09-01T10:10:21Zfedecontinuously disconnected/logged out from BriarThe problem I'm reporting does not concern my Briar setup (I'm using LineageOS 14.1), but my friend Briar setup. She uses a stock Android (can't check the version right now). Here's what happens to her:
- when she power-on the phone, Br...The problem I'm reporting does not concern my Briar setup (I'm using LineageOS 14.1), but my friend Briar setup. She uses a stock Android (can't check the version right now). Here's what happens to her:
- when she power-on the phone, Briar autostarts and asks for the password
- for some time she appears logged in and we can send messages each other
- after some time (less than half an hour) she appears offline and she does not receive any message
- even if she starts again Briar and logs in again, after some time she's put out without any notice
I could not see any obvious mistake in her configuration.
But I'm very new to Briar, so do not take anything for granted.
Any hint on how to debug this problem is appreciated.
Thanks in advanceakwizgranakwizgranhttps://code.briarproject.org/briar/briar/-/issues/993Can't load complete RSS feeds2017-07-26T11:02:28ZPatrick HamannCan't load complete RSS feedsPressing the highlighted "read more" in imported RSS feeds does not affect anything. So it's not possible to read the whole post.Pressing the highlighted "read more" in imported RSS feeds does not affect anything. So it's not possible to read the whole post.Android Beta 2Torsten GroteTorsten Grotehttps://code.briarproject.org/briar/briar/-/issues/994No incoming message notifications for second, third, and further messages. On...2017-08-01T16:23:49ZWikinautNo incoming message notifications for second, third, and further messages. Only the first message triggers a sound notification.When a new message is received, only the first message triggers the message sound, second and further messages do not trigger
a new incoming message sound. Pls. fix this, so that every message is signalled to the user.
Happens on these...When a new message is received, only the first message triggers the message sound, second and further messages do not trigger
a new incoming message sound. Pls. fix this, so that every message is signalled to the user.
Happens on these devices:
* HUAWEI P8 LITE (Android 6.0)
* HUAWEI P8 LITE 2017 (Android 7.0)Android Beta 2Torsten GroteTorsten Grotehttps://code.briarproject.org/briar/briar/-/issues/995[Clarification request or bug report] Communication unreliable because apps c...2017-07-27T11:23:13ZWikinaut[Clarification request or bug report] Communication unreliable because apps close after about 30 minutes of inactivity and then require password for restartI noticed, that communication between my devices is not permanently possible, and therefore regarded as "unreliable", becuase the app apparently shuts down after a while of inactivity.
The app is set as "secured" (German: "geschützte") ...I noticed, that communication between my devices is not permanently possible, and therefore regarded as "unreliable", becuase the app apparently shuts down after a while of inactivity.
The app is set as "secured" (German: "geschützte") App so that it is not closed down when the screen saver starts, or the screen is switched off.
Please can you clarify here, and perhaps in a FAQ, whether this is a bug, or intended behaviour.https://code.briarproject.org/briar/briar/-/issues/996Feedback to the "Blog" function2022-11-18T17:24:07ZHenrie SchmidtFeedback to the "Blog" functionHey developers!
Thx for your great work! I really love Briar!
I tested the Blog function of Briar and want to give you some feedback (from my point of view).
Is it possible to group the blog entries in some way? E.g. username -> blog e...Hey developers!
Thx for your great work! I really love Briar!
I tested the Blog function of Briar and want to give you some feedback (from my point of view).
Is it possible to group the blog entries in some way? E.g. username -> blog entry -> comments? The current implementation, where I can see all entries of all my contacts in chronological order is in my opinion really confusing. Also the fact that each blog entry is repeated with each comment is too much.
I really would appreciate that I can see a list of my contacts, click on one contact and see a list of blog entries from this contact, click on a blog entry and can read the contents and the comments.
If you have a lot of contacts with lot of blog entries and lot of comments, the phone is constantly notifiying about new entries. I think this will be eventually really tedious.
Best regards
Jenshttps://code.briarproject.org/briar/briar/-/issues/997Crash when setting camera parameters2017-08-01T13:35:11ZakwizgranCrash when setting camera parameters```
java.lang.RuntimeException: setParameters failed
at android.hardware.Camera.native_setParameters(Native Method)
at android.hardware.Camera.setParameters(Camera.java:1932)
at org.briarproject.briar.android.keya...```
java.lang.RuntimeException: setParameters failed
at android.hardware.Camera.native_setParameters(Native Method)
at android.hardware.Camera.setParameters(Camera.java:1932)
at org.briarproject.briar.android.keyagreement.CameraView.setBestParameters(CameraView.java:219)
at org.briarproject.briar.android.keyagreement.CameraView.start(CameraView.java:106)
at org.briarproject.briar.android.keyagreement.ShowQrCodeFragment.onStart(ShowQrCodeFragment.java:165)
at android.support.v4.app.Fragment.performStart(Fragment.java:2000)
at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1102)
at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1252)
at android.support.v4.app.BackStackRecord.run(BackStackRecord.java:738)
at android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1617)
at android.support.v4.app.FragmentManagerImpl$1.run(FragmentManager.java:517)
at android.os.Handler.handleCallback(Handler.java:739)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:135)
at android.app.ActivityThread.main(ActivityThread.java:5254)
at java.lang.reflect.Method.invoke(Native Method)
at java.lang.reflect.Method.invoke(Method.java:372)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:902)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:697)
```
* Phone model: Lenovo YT3-850M
* Android version: 5.1.1
* Briar version: 0.16.2 (63befcc)
```
07-22 14:56:46.630 I/CameraView(15800): Opening camera
07-22 14:56:47.478 I/CameraView(15800): Display orientation 90 degrees
07-22 14:56:47.482 I/CameraView(15800): Scene modes: [auto, asd, landscape, snow, beach, sunset, night, portrait, backlight, sports, steadyphoto, flowers, candlelight, fireworks, party, night-portrait, theatre, action, AR, hdr]
07-22 14:56:47.482 I/CameraView(15800): Focus modes: [auto, infinity, macro, continuous-video, continuous-picture, manual]
```Android Beta 2Torsten GroteTorsten Grotehttps://code.briarproject.org/briar/briar/-/issues/998Crash when getting camera parameters2021-03-24T16:26:49ZakwizgranCrash when getting camera parameters```
java.lang.RuntimeException: getParameters failed (empty parameters)
at android.hardware.Camera.native_getParameters(Native Method)
at android.hardware.Camera.getParameters(Camera.java:1952)
at org.briarproject...```
java.lang.RuntimeException: getParameters failed (empty parameters)
at android.hardware.Camera.native_getParameters(Native Method)
at android.hardware.Camera.getParameters(Camera.java:1952)
at org.briarproject.briar.android.keyagreement.QrCodeDecoder.onPreviewFrame(QrCodeDecoder.java:63)
at android.hardware.Camera$EventHandler.handleMessage(Camera.java:1133)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:154)
at android.app.ActivityThread.main(ActivityThread.java:6692)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1468)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1358)
```
* Phone model: SM-G930F (heroltexx)
* Android version: 7.0
* Briar version: 0.16.2 (63befcc)
* User feedback: "Pushed the feedback button in the menu and i got a crash message."
The user's feedback suggests this happened while the camera view wasn't visible.Android Beta 2Torsten GroteTorsten Grotehttps://code.briarproject.org/briar/briar/-/issues/999Export information that can be used to authenticate a Briar identity2020-11-19T14:46:16ZakwizgranExport information that can be used to authenticate a Briar identityA tester asked for the ability to publish something like a public key for their Briar identity on their website or Twitter account.A tester asked for the ability to publish something like a public key for their Briar identity on their website or Twitter account.https://code.briarproject.org/briar/briar/-/issues/1000Testers had to pair phones via Bluetooth to add each other as contacts2020-11-15T10:50:05ZakwizgranTesters had to pair phones via Bluetooth to add each other as contacts* User feedback: "Took us some time to figure out that we have to first pair our phones via Bluetooth before trying to add a contact."
* Android version: 7.1.2
* Briar version: 0.16.2* User feedback: "Took us some time to figure out that we have to first pair our phones via Bluetooth before trying to add a contact."
* Android version: 7.1.2
* Briar version: 0.16.2https://code.briarproject.org/briar/briar/-/issues/1001Briar connects to contacts via Bluetooth when configured not to2018-02-08T15:01:28ZakwizgranBriar connects to contacts via Bluetooth when configured not toA tester reported that their phone connected to a contact via Bluetooth when "Connect over Bluetooth: Only when adding contacts" was set.
This is because the setting only determines whether we turn on Bluetooth. Once it's turned on for ...A tester reported that their phone connected to a contact via Bluetooth when "Connect over Bluetooth: Only when adding contacts" was set.
This is because the setting only determines whether we turn on Bluetooth. Once it's turned on for whatever reason, we always use it for connecting to contacts regardless of the setting. We should either change the behaviour or change the way the setting is described.akwizgranakwizgranhttps://code.briarproject.org/briar/briar/-/issues/1002NPE when getting camera parameters2017-08-01T14:00:28ZakwizgranNPE when getting camera parametersThis crash has a different stacktrace from #998:
```
java.lang.NullPointerException: Attempt to invoke virtual method 'android.hardware.Camera$Parameters android.hardware.Camera.getParameters()' on a null object reference
at org....This crash has a different stacktrace from #998:
```
java.lang.NullPointerException: Attempt to invoke virtual method 'android.hardware.Camera$Parameters android.hardware.Camera.getParameters()' on a null object reference
at org.briarproject.briar.android.keyagreement.CameraView.start(CameraView.java:95)
at org.briarproject.briar.android.keyagreement.ShowQrCodeFragment.onStart(ShowQrCodeFragment.java:165)
at android.support.v4.app.Fragment.performStart(Fragment.java:2000)
at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1102)
at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1252)
at android.support.v4.app.BackStackRecord.run(BackStackRecord.java:738)
at android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1617)
at android.support.v4.app.FragmentManagerImpl$1.run(FragmentManager.java:517)
at android.os.Handler.handleCallback(Handler.java:751)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:154)
at android.app.ActivityThread.main(ActivityThread.java:6121)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:889)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:779)
```
* Phone model: Pinebook (tulip_chiphd_pinebook)
* Android version: 7.1.2
* Briar version: 0.16.2 (63befcc)
* User feedback: "when i start to add contacts it is crashing. you can contact me for questions/testing."
It looks like the camera service returned a null camera:
```
07-23 12:41:01.512 I/CameraView(30067): Opening camera
07-23 12:41:01.595 I/CameraView(30067): Display orientation 0 degrees
07-23 12:41:01.601 W/CameraView(30067): Error setting display orientation
07-23 12:41:01.601 W/CameraView(30067): java.lang.NullPointerException: Attempt
to invoke virtual method 'void android.hardware.Camera.setDisplayOrientation(int
)' on a null object reference
```
The device seems to be a tablet in landscape mode:
```
"orientation" : "ORIENTATION_LANDSCAPE",
"screenHeightDp" : 696,
"screenLayout" : "SCREENLAYOUT_SIZE_XLARGE+SCREENLAYOUT_LONG_YES+SCREENLAY
OUT_LAYOUTDIR_LTR+SCREENLAYOUT_ROUND_NO",
"screenWidthDp" : 1366,
```
The device has a front-facing camera:
```
"android.hardware.camera.any" : true,
"android.hardware.camera.front" : true,
```Android Beta 2Torsten GroteTorsten Grotehttps://code.briarproject.org/briar/briar/-/issues/1003RSS feeds served by Cloudflare fail to import due to captcha page2021-11-24T17:04:00ZakwizgranRSS feeds served by Cloudflare fail to import due to captcha pageA user reported that the following feed fails to import: https://blog.fefe.de/rss.xml
A quick test confirms that there's no error message, but no posts appear. The RSS feed appears in the list of feeds, with the expected title. Maybe th...A user reported that the following feed fails to import: https://blog.fefe.de/rss.xml
A quick test confirms that there's no error message, but no posts appear. The RSS feed appears in the list of feeds, with the expected title. Maybe there's an issue with parsing the feed? The items have no dates.
(Note: The issue of feeds without dates has been moved to #1708.)https://code.briarproject.org/briar/briar/-/issues/1004Private group messages not received2020-11-19T14:43:31ZakwizgranPrivate group messages not receivedA user reported the following issue:
"I tried to create a private group but none of the other group members receive my messages"
Unfortunately there isn't enough information for us to track down the problem unless someone else encounte...A user reported the following issue:
"I tried to create a private group but none of the other group members receive my messages"
Unfortunately there isn't enough information for us to track down the problem unless someone else encounters it.