briar issueshttps://code.briarproject.org/briar/briar/-/issues2023-02-26T08:07:01Zhttps://code.briarproject.org/briar/briar/-/issues/1623Ability to share files of any types and size.2023-02-26T08:07:01ZVladislavAbility to share files of any types and size.Hi, it would be great to be able to send and receive any file you want.
I think it can be realized using OnionShare or Torrent.Hi, it would be great to be able to send and receive any file you want.
I think it can be realized using OnionShare or Torrent.https://code.briarproject.org/briar/briar/-/issues/1622Import Twitter feeds as RSS via Nitter2020-11-15T18:01:12ZakwizgranImport Twitter feeds as RSS via NitterNitter is a privacy-oriented Twitter frontend that proxies client requests to twitter.com. It allows Twitter feeds to be accessed via RSS. We could use this to import Twitter feeds (read-only) as Briar blogs.Nitter is a privacy-oriented Twitter frontend that proxies client requests to twitter.com. It allows Twitter feeds to be accessed via RSS. We could use this to import Twitter feeds (read-only) as Briar blogs.https://code.briarproject.org/briar/briar/-/issues/1588New setting: Time window / Interval in which Briar goes online2022-01-04T16:11:37ZmicressorNew setting: Time window / Interval in which Briar goes onlineI want a way to set Briar so that the app connects at an interval of X for Y minutes to synchronize messages.
As a second possibility, a period where Briar connects to synchronize messages. For example between X and Y o'clock every day....I want a way to set Briar so that the app connects at an interval of X for Y minutes to synchronize messages.
As a second possibility, a period where Briar connects to synchronize messages. For example between X and Y o'clock every day.
The idea behind it is to make online time more effective due to the high battery consumption. Two users could agree to configure their Briar Apps between X and Y to go online and synchronize messages.https://code.briarproject.org/briar/briar/-/issues/1540Make it easier to find the changelog2020-05-09T15:15:42ZakwizgranMake it easier to find the changelogUser feedback: "Please provide change logs that are easily accessible."
Perhaps we should link to the changelog from the website and/or include it in the app.
Related to #1312.User feedback: "Please provide change logs that are easily accessible."
Perhaps we should link to the changelog from the website and/or include it in the app.
Related to #1312.https://code.briarproject.org/briar/briar/-/issues/1502Restart obfs4proxy if it crashes2023-03-15T12:55:10ZakwizgranRestart obfs4proxy if it crashesIf the obfs4proxy process is killed (e.g. due to low memory), Tor detects that it's died but doesn't restart it. Setting `DisableNetwork` to 1 and then back to 0 causes Tor to restart obfs4proxy.
Log message from Tor when obfs4proxy die...If the obfs4proxy process is killed (e.g. due to low memory), Tor detects that it's died but doesn't restart it. Setting `DisableNetwork` to 1 and then back to 0 causes Tor to restart obfs4proxy.
Log message from Tor when obfs4proxy dies:
```
TorPlugin: WARN The connection to the SOCKS5 proxy server at 127.0.0.1:42125 just failed. Make sure that the proxy server is up and running.
```https://code.briarproject.org/briar/briar/-/issues/1500Check PNGs for exploits before passing them to Android2021-11-04T11:03:44ZakwizgranCheck PNGs for exploits before passing them to AndroidWe need to find out how to detect PNGs that can exploit this vulnerability, so we can avoid passing them to Android:
https://www.zdnet.com/article/opening-this-image-file-grants-hackers-access-to-your-android-phone/
Subtask of #1237.We need to find out how to detect PNGs that can exploit this vulnerability, so we can avoid passing them to Android:
https://www.zdnet.com/article/opening-this-image-file-grants-hackers-access-to-your-android-phone/
Subtask of #1237.Android 1.4https://code.briarproject.org/briar/briar/-/issues/1447Core API for observing a message graph2020-12-08T12:17:23ZakwizgranCore API for observing a message graphThe core API exposes methods for getting a snapshot of the message graph in a group, such as `DatabaseComponent#getMessageIds()` and `DatabaseComponent#getDependencies()`, and events for learning about changes to the message graph, such ...The core API exposes methods for getting a snapshot of the message graph in a group, such as `DatabaseComponent#getMessageIds()` and `DatabaseComponent#getDependencies()`, and events for learning about changes to the message graph, such as `MessageAddedEvent` and `MessageStateChangedEvent` at the sync layer, or `PrivateMessageReceivedEvent` at the client layer.
The UI uses a combination of asynchronous DB queries and events to maintain a view of the message graph. Using the data attached to events to update the UI is more efficient than triggering a DB query for every event, but it causes a lot of complexity in the UI code because updates may happen concurrently with asynchronous loads (see #705).
All interactions between the UI and the DB are funnelled through the single-threaded DatabaseExecutor, mainly to ensure that queries return their results to the UI in the same order as the queries were started. The database allows read-only transactions to run concurrently, but queries running on the DatabaseExecutor can't take advantage of this because the executor is single-threaded.
If we could provide a better API for observing a message graph then we might be able to simplify the UI code and perhaps even improve DB performance by allowing more queries to run concurrently.
The new API should allow an observer to register an interest in a group's message graph and receive an initial snapshot of the graph, followed by an ordered series of updates when the graph changes. An observer registered from the UI will need to process the observations on the UI thread. As long as the core delivers the observations in order it should be easy to move them onto the UI thread in the same order.
We also need a way to register multiple observers that are ordered with respect to each other, so that we can create UI components that represent multiple groups, such as a conversation containing private messages, invitations, etc.
To ensure ordering, the DB will need to register any changes made by a transaction before releasing the DB lock. Events attached to transactions aren't currently suitable for communicating ordered changes because they're broadcast after releasing the DB lock, so two transactions that commit their changes in the order A, B may broadcast their events in the order B, A. But communicating changes to other components while holding the DB lock would have the potential to cause deadlock.
It might be possible to modify the event broadcasting logic so that events are registered before releasing the lock and broadcast afterwards, ensuring the broadcast order is consistent with the commit order. Alternatively we could create a separate mechanism for registering and communicating ordered changes.https://code.briarproject.org/briar/briar/-/issues/1441Expel members from forums2020-11-15T19:47:45ZakwizgranExpel members from forumsA user asked for the ability to expel members from forums.
This is less likely to be feasible than #1440, but I'm recording the request anyway.
Related to #512.A user asked for the ability to expel members from forums.
This is less likely to be feasible than #1440, but I'm recording the request anyway.
Related to #512.https://code.briarproject.org/briar/briar/-/issues/1410Share content from another app as a Briar message2020-11-15T20:06:29ZmicressorShare content from another app as a Briar message### Steps to reproduce
1. For example: open a RSS or podcast app.
2. Select an article/podcast
3. Select share button
### Actual behaviour
It is not possible to select briar as a target.
### Expected behaviour
It should be possible to ...### Steps to reproduce
1. For example: open a RSS or podcast app.
2. Select an article/podcast
3. Select share button
### Actual behaviour
It is not possible to select briar as a target.
### Expected behaviour
It should be possible to select briar for sharing.https://code.briarproject.org/briar/briar/-/issues/1401Make transport indicators usable by colourblind users2020-11-15T20:10:45ZakwizgranMake transport indicators usable by colourblind usersUser feedback: "For productivity purposes I use my phone in greyscale mode, it's at the same time a simulation of color blindness. I've noticed that it's hard to distinguish the internet/WiFi/Bluetooth indicators' active green from the i...User feedback: "For productivity purposes I use my phone in greyscale mode, it's at the same time a simulation of color blindness. I've noticed that it's hard to distinguish the internet/WiFi/Bluetooth indicators' active green from the inactive grey. The solution could be putting a dot/underscore to indicate WiFi is enabled."https://code.briarproject.org/briar/briar/-/issues/1400Explain that if Tor is turned off, nothing will be sent via the internet2020-11-15T20:11:59ZakwizgranExplain that if Tor is turned off, nothing will be sent via the internetUser feedback: "Settings should indicate that if Tor is turned off, messages will not be sent via the internet (there is no non-Tor P2P WAN option)."User feedback: "Settings should indicate that if Tor is turned off, messages will not be sent via the internet (there is no non-Tor P2P WAN option)."CleopatraCleopatrahttps://code.briarproject.org/briar/briar/-/issues/1308Configurable colours for text balloons2020-11-18T02:03:46ZakwizgranConfigurable colours for text balloonsA user asked for the ability to change the colours of text balloons.A user asked for the ability to change the colours of text balloons.https://code.briarproject.org/briar/briar/-/issues/1296Feature request: Use SMS as data channel for selected users2019-09-30T11:05:39ZJens KorteFeature request: Use SMS as data channel for selected usersSMS could be used as an additional data channel beside bluetooth, WLAN and internet. Briar would become a replacement for an encrypting SMS app then. Even if the signal strength is weak, SMS will be send if signal is acceptable for a sho...SMS could be used as an additional data channel beside bluetooth, WLAN and internet. Briar would become a replacement for an encrypting SMS app then. Even if the signal strength is weak, SMS will be send if signal is acceptable for a short time.https://code.briarproject.org/briar/briar/-/issues/1287Design update2020-11-18T02:29:31ZAllan NordhøyDesign updateSaw the interest in having some design done on OSD, couldn't make screenshots, so in writing for the time being.
Made a little list of my thoughts on getting things up and running.
Would be really nice to have one screenshot of everythi...Saw the interest in having some design done on OSD, couldn't make screenshots, so in writing for the time being.
Made a little list of my thoughts on getting things up and running.
Would be really nice to have one screenshot of everything to work with,then i could make a big image of it showing how different tasks are pieced together.
This is setting up stuff:
---
**Screen 1**
s/Welcome to Briar/Welcome/
! Put small logo top center
! Remove infotag
Username (in gray)
> ______________________ x ← red underline, turns green whenever the required amount of char has been entered
"Shown next to any content you post. Can not be changed."
// throw error message if illegal chars are entered
Password (in gray)
> ______________________ x
Can be changed from settings.
---
**Screen 2**
s/Choose a password/Password/
* Pick a secure password you remember (in gray)
> ______________________ ← starts out as a red line, progresses through the security stages, checkmark
* Confirm (in gray)
> ______________________ ← red line that turns green once matching checkmark
Press Next and passwords aren't matching, get error message
---
**Screen 3**
s/Background connections/Permissions
Access BT settings
> ______________________ ✓
Control vibration
> ______________________ ✓
Full network access
> ______________________ ✓
Pair with BT devices
> ______________________ ✓
Prevent phone from sleeping
> ______________________ ✓
View network connections
> ______________________ ✓
View Wi-Fi connections
> ______________________ ✓
Take pictures and video (moved here instead of being in the add contact dialog) (F-droid does not say "record" video.)
> ______________________ x s/Allow connections/Grant/
battery optimization exception.
> ______________________ x [Grant]
Needed to stay connected in the background
Same green underline when OK, red when not. checkmark
s/CREATE ACCOUNT/Create account/
--
**Screen 4**
s/add a contanct/Adding contacts/
This should be the landing page when having done the setup. (?)
--
Add "about" field in settings with license, contributors, where to find code, and translation platform.
There is a huge amount of polishing that can be done in other areas, and I thought this was a good start.https://code.briarproject.org/briar/briar/-/issues/1282Briar loses Tor connectivity when Orbot's VPN mode is activated2023-02-07T15:11:21ZakwizgranBriar loses Tor connectivity when Orbot's VPN mode is activatedTurning on Orbot's VPN mode causes Briar to lose Tor connections to contacts, but the Tor transport is still shown as active. When VPN mode is turned off, connections to contacts are re-established.Turning on Orbot's VPN mode causes Briar to lose Tor connections to contacts, but the Tor transport is still shown as active. When VPN mode is turned off, connections to contacts are re-established.https://code.briarproject.org/briar/briar/-/issues/1203Attractive backgrounds2020-11-18T22:31:55ZPratiwirAttractive backgroundsI would like to suggest more personalised user features.
Change colors of bubbles and backgrounds. Be able to shift the overall displayed emoticon colors to personal taste. Add backgrounds for other users of a group chat or forum to ac...I would like to suggest more personalised user features.
Change colors of bubbles and backgrounds. Be able to shift the overall displayed emoticon colors to personal taste. Add backgrounds for other users of a group chat or forum to access.
If possible allow for development of scripts to animate dynamic backgrounds, but strictly limited to the background area of the chat and bubble boundary outlines, up to the user to invoke. If this were possible it could add features that other messaging services don't have.https://code.briarproject.org/briar/briar/-/issues/1201Trust indicator in conversation view2022-11-18T16:46:06ZakwizgranTrust indicator in conversation viewA user asked for trust indicators to be shown in the conversation view.
"It might also be useful to show some sort of security information to be able to check that we are talking directly to who we think we are without a man in the midd...A user asked for trust indicators to be shown in the conversation view.
"It might also be useful to show some sort of security information to be able to check that we are talking directly to who we think we are without a man in the middle."https://code.briarproject.org/briar/briar/-/issues/1187Incognito Keyboard2023-03-09T10:55:41ZTorsten GroteIncognito KeyboardSignal has a feature called Incognito Keyboard which seems to request to disable personalized learning from user input which some proprietary keyboard apps do. This might be a useful feature for us as well. Signal does it like this:
htt...Signal has a feature called Incognito Keyboard which seems to request to disable personalized learning from user input which some proprietary keyboard apps do. This might be a useful feature for us as well. Signal does it like this:
https://github.com/signalapp/Signal-Android/blob/ba849bce2c90287e820a3008e9dc9a1b14de19fc/src/org/thoughtcrime/securesms/components/ComposeText.java#L154-L156
So it seems to be a quick change.https://code.briarproject.org/briar/briar/-/issues/1119More information about message status2020-11-19T12:54:43ZakwizgranMore information about message statusA user asked for more information about message status "(sent/unsent/when/scheduled next try/force it...)".A user asked for more information about message status "(sent/unsent/when/scheduled next try/force it...)".https://code.briarproject.org/briar/briar/-/issues/1104Load messages on demand (paged/lazy)2022-05-16T19:53:45ZakwizgranLoad messages on demand (paged/lazy)If a group contains a lot of messages, it's expensive to load all the messages when the user views the group.
Some clients use metadata to avoid loading messages. Message bodies can then be loaded on demand as they become visible. But t...If a group contains a lot of messages, it's expensive to load all the messages when the user views the group.
Some clients use metadata to avoid loading messages. Message bodies can then be loaded on demand as they become visible. But this is still expensive if there are lots of messages and/or lots of metadata per message.
Ideally we'd use something like the MessageTracker to store summary information, then load the messages and/or metadata on demand.
One of the tasks here is to determine what summary information each client needs. For example, the forum client needs to know the number of unread posts above and below the viewport. It may also need to know the sort position of the first unread post above and below the viewport so it can jump to those posts.
Sort order will be relevant to any client that loads messages on demand. If we want to load messages a page at a time, the database needs to know how to sort the messages. But sort order is client-dependent. For example, the blog client may want to sort posts by date, whereas the forum client sorts them by depth-first traversal order of the reply tree.
We can capture both of these orders (and hopefully others) by adding a label to each message. From the database's point of view, the label is just an opaque string of bytes. The database sorts the labels in lexicographic order, and messages and metadata can be retrieved by their positions in the sort order. The client is reponsible for labelling messages to achieve the desired sort order.
For the blog client, the label can just be a big-endian representation of the timestamp. For the forum client, the label can be the concatenated timestamps of the post's ancestors and the post itself. These labels will sort in the same order as depth-first traversal of the tree, visiting siblings in timestamp order.
```
123
+-123/234
+-123/345
234
+-234/345
+-234/345/456
345
567
```
(This doesn't rely on the rule that a post has a higher timestamp than its parent.)
This approach wouldn't be efficient for dynamic sort orders. For example, if the forum client wanted to sort siblings by the number of upvotes, we could calculate the labels as with timestamps, but adding an upvote to a post would require relabelling the post and all its descendents.