briar issueshttps://code.briarproject.org/briar/briar/-/issues2020-11-15T13:41:23Zhttps://code.briarproject.org/briar/briar/-/issues/1798Delete account if wrong password is entered several times2020-11-15T13:41:23ZakwizgranDelete account if wrong password is entered several timesA user asked for the option to delete the account automatically if the wrong password is entered several times.A user asked for the option to delete the account automatically if the wrong password is entered several times.https://code.briarproject.org/briar/briar/-/issues/1685New concept of forums and blogs (Groups, Supergroup and Channels)2022-07-26T00:11:57ZjomocuNew concept of forums and blogs (Groups, Supergroup and Channels)**General idea: The administrators of the group would have some general adjustments for the group, according to the group configuration a category is assigned.**
Generic settings for group administrators:
- Give the possibility that th...**General idea: The administrators of the group would have some general adjustments for the group, according to the group configuration a category is assigned.**
Generic settings for group administrators:
- Give the possibility that the users of the group, add new users, or not.
- Allow users to send messages or not.
- Allow users to send images or not.
- Allow users to send files or not.
- Allow users to send music or not.
- Allow users to send audios or not.
- Allow users to send gif or not.
- Other settings...
Depending on the general settings of the group, categories could be assigned, the categories change according to the group's permissions.
**Category "Channels"**
*Category feature:*
- Group members can only receive messages.
- All users can create a new "Channel" by default group permissions shown above.
For example, in a group that is not allowed to speak to its members and only administrators can speak, this category would be assigned since information is only received from administrators (for example, offers, or news about games, news, etc.)
In this case it would be good to give the possibility of self-publishing rss news for administrators.
**Category "Group"**
*Category feature:*
- Group members can send and receive messages.
- Group members cannot add new users (Only administrators can do so)
- All users can create a new "Group" by default group permissions shown above.
**Category "Supergroup"**
*Category feature:*
- Group members can send and receive messages.
- Group members can add new users.
- All users can create a new "Supergroup" by default group permissions shown above.
I think that would be better.
More organized, cleaner.
Regardshttps://code.briarproject.org/briar/briar/-/issues/1675Investigate whether we can capture a photo from the camera without storing it...2020-11-15T17:00:31ZakwizgranInvestigate whether we can capture a photo from the camera without storing it on diskWhen sending an ACTION_IMAGE_CAPTURE intent it's possible to pass a content URI that represents a file where the camera app should store the image. (On Android 7+ the URI has to be obtained from a FileProvider.) In itself that's not much...When sending an ACTION_IMAGE_CAPTURE intent it's possible to pass a content URI that represents a file where the camera app should store the image. (On Android 7+ the URI has to be obtained from a FileProvider.) In itself that's not much use - it would allow us to specify a file in Briar's private data dir, which is better than using the shared media dir, but the file would still be unencrypted.
Investigate whether it's possible to pass a URI that represents a pipe rather than an ordinary file, in which case we could read the data from the pipe into the encrypted db (or an encrypted temporary file).https://code.briarproject.org/briar/briar/-/issues/1674NPE in ContactListFragment2021-11-04T11:03:44ZakwizgranNPE in ContactListFragment* Android version: 10
* Phone model: Google Pixel 2 XL (taimen)
* Briar version: 1.2.4 (75dfa80)
* User feedback: "Opened the app after many messages were sent."
Stacktrace:
```
java.lang.NullPointerException: Attempt to read from field...* Android version: 10
* Phone model: Google Pixel 2 XL (taimen)
* Briar version: 1.2.4 (75dfa80)
* User feedback: "Opened the app after many messages were sent."
Stacktrace:
```
java.lang.NullPointerException: Attempt to read from field 'android.widget.ImageView org.briarproject.briar.android.contact.ContactItemViewHolder.avatar' on a null object reference
at org.briarproject.briar.android.contact.ContactListFragment.lambda$onCreateView$0$ContactListFragment(ContactListFragment.java:140)
at org.briarproject.briar.android.contact.-$$Lambda$ContactListFragment$DvpyzIeg2gO44NHGy22U4l_irhw.onItemClick(Unknown Source:4)
at org.briarproject.briar.android.contact.ContactItemViewHolder.lambda$bind$0$ContactItemViewHolder(ContactItemViewHolder.java:58)
at org.briarproject.briar.android.contact.-$$Lambda$ContactItemViewHolder$M1B1WNtK1OEXOZpZndUVONB779k.onClick(Unknown Source:6)
at android.view.View.performClick(View.java:7140)
at android.view.View.performClickInternal(View.java:7117)
at android.view.View.access$3500(View.java:801)
at android.view.View$PerformClick.run(View.java:27351)
at android.os.Handler.handleCallback(Handler.java:883)
at android.os.Handler.dispatchMessage(Handler.java:100)
at android.os.Looper.loop(Looper.java:214)
at android.app.ActivityThread.main(ActivityThread.java:7356)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:492)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:930)
```
Edited log:
```
11-26 19:32:16.943 I/AndroidNetworkManager: Received broadcast android.intent.action.SCREEN_OFF
11-26 19:32:25.628 I/BaseActivity: Starting ConversationActivity
11-26 19:32:25.674 I/BaseActivity: Starting UnlockActivity
11-26 19:32:25.697 I/BaseActivity: Stopping UnlockActivity
11-26 19:32:25.698 I/BaseActivity: Stopping ConversationActivity
11-26 19:32:25.751 I/BaseActivity: Starting UnlockActivity
11-26 19:32:25.776 I/AndroidNetworkManager: Received broadcast android.intent.action.SCREEN_ON
11-26 19:32:25.997 I/BaseActivity: Starting NavDrawerActivity
11-26 19:32:26.025 I/BaseActivity: Starting UnlockActivity
11-26 19:32:26.103 I/BaseActivity: Stopping NavDrawerActivity
11-26 19:32:26.207 I/BaseActivity: Stopping UnlockActivity
11-26 19:32:26.830 I/BaseActivity: Starting NavDrawerActivity
11-26 19:32:27.387 I/BaseActivity: Stopping UnlockActivity
11-26 19:32:29.054 I/ConversationActivity: Eagerly loading text for latest message
11-26 19:32:29.108 I/ContactListFragment: Concurrent update, reloading
11-26 19:32:30.076 I/ContactListFragment: Conversation message received, updating item
```
There are some odd things about this log:
1. ConversationActivity and UnlockActivity seem to be started while the screen is off. I'm guessing this isn't really the case, it's just that the SCREEN_ON broadcast was received a while after the screen was actually turned on.
2. ConversationActivity is stopped at 19:32:25 and not subsequently started. But at 19:32:29 it eagerly loads the text for a new message.
* It shouldn't be doing any work while stopped.
* If we show the contact list after unlocking then we should clear the stack down to the existing instance of NavDrawerActivity, if any, which should destroy any existing instance of ConversationActivity.
3. A message arrives while ContactListFragment is loading the contact list, which presumably started at 19:32:26 when NavDrawerActivity was started. This causes ContactListFragment to reload the contact list. It's not clear whether the reload has completed before we try to update the item, triggering the crash.Android 1.4https://code.briarproject.org/briar/briar/-/issues/1670An option for reverse chronological order in forums2019-11-25T16:42:36ZtaggbuskeAn option for reverse chronological order in forumsAn option for reverse chronological order for forums would be nice, so that threads get bumped. Right now it's possible that new messages get "lost" when they are replies to old threads. Since messages in Briar don't seem to get timestam...An option for reverse chronological order for forums would be nice, so that threads get bumped. Right now it's possible that new messages get "lost" when they are replies to old threads. Since messages in Briar don't seem to get timestamped I suppose the ordering would need to be on the time they were received by the client.
Possibly related: #1443 #503https://code.briarproject.org/briar/briar/-/issues/1646Briar use Android wifi tethering hotspot without a sim card2023-11-20T18:47:33ZricjdjwoeownsoBriar use Android wifi tethering hotspot without a sim cardHi,
where I can also use the Android wifi tethering hotspot without a sim card? Because wifi connection is significantly farther reaching than bluetooth.
Here's what I was just trying to do.
One, I've installed Android equipment and t...Hi,
where I can also use the Android wifi tethering hotspot without a sim card? Because wifi connection is significantly farther reaching than bluetooth.
Here's what I was just trying to do.
One, I've installed Android equipment and the Briar app. No SIM card in the device because living here in the countryside there is no Internet. And I also have Android tablets that only have wifi chip.
2. the idea was i create an android wifi hotspot and the other devices nearby connect to it. But it does not work, the creation of an android wifi hotspot only works if I put a SIM card in it. on an android tablet (wifi only) this function does not exist at all.
I use Android 7 and Android 9. I don't know if there is an app that can create a local android wifi hotspot without a SIM card.
Maybe I overlooked something and it works without sim card. If yes, where exactly?https://code.briarproject.org/briar/briar/-/issues/1631Offline import RSS2021-02-05T10:25:41ZVladislavOffline import RSSAllow to add RSS-feed when connection can't be established.
Sometimes, internet connection is slow, and connection with TOR can't be established. That cause impossibility to add RSS-feedAllow to add RSS-feed when connection can't be established.
Sometimes, internet connection is slow, and connection with TOR can't be established. That cause impossibility to add RSS-feedhttps://code.briarproject.org/briar/briar/-/issues/1619New chat category: Emergency forum.2020-11-15T18:05:14ZVladislavNew chat category: Emergency forum.What for?
In emergency situation, to be able to write message in emergency forum, that can be seen by anybody in this group, even if not in your contact list. With possibility to block user (if spammer).
Works only in WiFi-Direct, Bluet...What for?
In emergency situation, to be able to write message in emergency forum, that can be seen by anybody in this group, even if not in your contact list. With possibility to block user (if spammer).
Works only in WiFi-Direct, Bluetooth.https://code.briarproject.org/briar/briar/-/issues/1596Make migrations idempotent where possible2020-11-15T18:14:12ZakwizgranMake migrations idempotent where possibleThe database migrations use data definition commands (`ALTER TABLE`, etc) that H2 commits automatically as soon as they're executed, even though we execute the commands within a transaction. If a crash happens during a migration, the DB ...The database migrations use data definition commands (`ALTER TABLE`, etc) that H2 commits automatically as soon as they're executed, even though we execute the commands within a transaction. If a crash happens during a migration, the DB may be left in a state where the migration has been partially applied. If the data definition commands aren't idempotent then subsequent attempts to apply the migration will fail, making it impossible to complete the migration and open the DB.
Where possible we should use data definition commands that are idempotent. For example, `DELETE COLUMN` should be `DELETE COLUMN IF EXISTS`, `CREATE COLUMN` should be `CREATE COLUMN IF NOT EXISTS`, etc.https://code.briarproject.org/briar/briar/-/issues/1578Improve structure of Briar Headless API documentation2021-03-22T10:52:52ZNicoImprove structure of Briar Headless API documentationCurrently, the documentation for the API is directly written into [its readme file](https://code.briarproject.org/briar/briar/blob/release-1.1.7/briar-headless/README.md). That's fine for the beginning, [I was even able to build a first ...Currently, the documentation for the API is directly written into [its readme file](https://code.briarproject.org/briar/briar/blob/release-1.1.7/briar-headless/README.md). That's fine for the beginning, [I was even able to build a first prototype with it](https://nico.dorfbrunnen.eu/posts/2019/briar-first-demo/).
However, I suggest to improve the structure of the documentation by moving it into a separate repository. My suggestion was to create a Hugo page with a docs theme (or some other static site generator) at docs.briarproject.org.
@grote's response to this was (loosely translated by me): "Best to make the documentation directly into the code with swagger"
My response to this now: OK, we can do this, but I don't know how much sense it makes to put a lot of basic explanations into code. E.g. all the valuable information collected in https://code.briarproject.org/briar/briar/issues/1577.
**Update:** I agree with Torsten that it's best to generate the documentation from code. That's what I do with [`briar_wrapper`](https://code.briarproject.org/briar/python-briar-wrapper), too, at https://wrapper.docs.briarproject.org/ and the API's docs can be hosted at https://api.docs.briarproject.org/, imho.CleopatraCleopatrahttps://code.briarproject.org/briar/briar/-/issues/1550Relay encrypted messages between contacts2020-11-15T18:44:35ZakwizgranRelay encrypted messages between contactsSeveral users have suggested that Briar should relay encrypted messages between contacts, so that users who can't communicate directly can pass messages through mutual contacts.
This would have implications for battery and bandwidth con...Several users have suggested that Briar should relay encrypted messages between contacts, so that users who can't communicate directly can pass messages through mutual contacts.
This would have implications for battery and bandwidth consumption. If message propagation was restricted then it would also have privacy implications (Alice could see that Bob and Carol were both sending messages at 3am, when nobody else was sending anything). If message propagation was unrestricted then the battery and bandwidth impact would be hard to control - this would affect scalability and enable flooding attacks. Fair queueing might help to mitigate flooding attacks (#511).
One user suggested that the privacy impact could be mitigated through fine-grained controls (e.g. Bob and Carol would only choose Alice to relay their messages if they didn't mind her knowing when they were communicating). I'm skeptical about whether most people can predict and manage their privacy needs at that granularity in advance, but I could be wrong.https://code.briarproject.org/briar/briar/-/issues/1542Pinned posts2020-11-15T18:51:08ZakwizgranPinned postsA user asked for the ability to pin posts in private groups and forums.
Related to #880.A user asked for the ability to pin posts in private groups and forums.
Related to #880.https://code.briarproject.org/briar/briar/-/issues/1541Allow users to create polls2020-11-15T18:52:19ZakwizgranAllow users to create pollsA user asked for the ability to create polls in groups, blogs and forums.
This would be pretty easy to implement at the client layer, by adding "poll" and "vote" message types, where a vote message depends on a poll message, indicates o...A user asked for the ability to create polls in groups, blogs and forums.
This would be pretty easy to implement at the client layer, by adding "poll" and "vote" message types, where a vote message depends on a poll message, indicates one of the options in the poll message, and is signed by the voter. The client would use metadata attached to the poll message to count votes and apply rules for situations like an identity voting for multiple options (whether this is valid [depends on the voting system!](https://en.wikipedia.org/wiki/Approval_voting)).
I think this feature would make the most sense for private groups. Forums don't have any limit on which identities can take part, so vote stuffing would be easy. Blogs have the same issue, and allowing subscribers to send vote messages would remove one of the nice security properties of blogs, which is that subscribers have no way to DoS a blog because only the owner can post messages.https://code.briarproject.org/briar/briar/-/issues/1472Explain how Briar is different (rename the "blog"?)2022-11-18T17:24:07ZBjarni RĂșnar EinarssonExplain how Briar is different (rename the "blog"?)Hi! Thanks for Briar, I'm very impressed with what you've done so far.
I was testing it for a bit (the wife and I now have the world's most secure shopping-list app!), and I wanted to share my first impression before it fades. Please fe...Hi! Thanks for Briar, I'm very impressed with what you've done so far.
I was testing it for a bit (the wife and I now have the world's most secure shopping-list app!), and I wanted to share my first impression before it fades. Please feel free to close this issue if you feel it's unhelpful or redundant.
Basically, my dominant feeling was confusion.
What is all this stuff? How does it work? The messages and contacts are straightforward, and the private groups as well... but the forums and blogs had me scratching my head. I still don't fully get them.
How do people discover a blog, or a forum? Are they completely public? Are they shared word-of-mouth over messages? Are there any access controls?
The fact that I couldn't edit or delete blog posts after writing a couple of inane tests was very unsettling - this goes against the expectations any normal user will have for something named "blog", and it's bad enough that after perfectly normal "test behaviour" one is likely going to be forced to delete one's account and start over because anyone with a quirky (let alone risque) sense of humour is likely to write "test posts" that absolutely shouldn't stay on the public record.
I'm technical enough to understand that a lot of this has to do with the underlying p2p distribution, and is also likely emergent from the design goal of making things censorship resistant. But for someone less technical, these limitations are simply baffling and disconcerting. They're also a major roadblock to adoption - I will never use a blog like this as a casual, social tool for expressing myself, and I would strongly recommend against their use to anyone else as well. For personal safety, being able to edit and delete and curate ones' public identity is vital.
There is absolutely a place and a need in this world for a feature like this - but my personal feeling is it needs to be carefully explained and shouldn't be called "blog", as that word implies all sorts of casual social interactions which this is simply inappropriate for (in its current iteration).
But obviously these are just my opinions, I hope they're helpful!CleopatraCleopatrahttps://code.briarproject.org/briar/briar/-/issues/1444Show large emoji when no other text is included2020-11-15T19:46:01ZakwizgranShow large emoji when no other text is includedA user asked for emoji to be enlarged when the message contains no other text.A user asked for emoji to be enlarged when the message contains no other text.https://code.briarproject.org/briar/briar/-/issues/1443Flat conversation view for private groups2019-11-20T13:08:01ZakwizgranFlat conversation view for private groupsA user asked for private groups to be shown in a flat (unthreaded) view.
We've had requests for this before and never opened a ticket because a simple flat view based on message creation time or arrival time wouldn't work well with Bria...A user asked for private groups to be shown in a flat (unthreaded) view.
We've had requests for this before and never opened a ticket because a simple flat view based on message creation time or arrival time wouldn't work well with Briar's asynchronous message delivery. But apps like Slack and Mattermost have experimented with new ways to show asynchronous replies in a flat view, so perhaps the request should be considered.https://code.briarproject.org/briar/briar/-/issues/1408Reduce memory usage2020-11-15T20:07:02ZakwizgranReduce memory usageA user asked for Briar to use less memory.A user asked for Briar to use less memory.https://code.briarproject.org/briar/briar/-/issues/1325Use Psiphon when Tor bridges are not reachable2020-11-18T01:38:59ZTorsten GroteUse Psiphon when Tor bridges are not reachableWe have been encouraged to use [Psiphon](https://www.psiphon.ca/) as a circumvention technology.
Here's how to add it:
> - Start the [Psiphon Library](https://github.com/Psiphon-Labs/psiphon-tunnel-core/tree/master/MobileLibrary/Androi...We have been encouraged to use [Psiphon](https://www.psiphon.ca/) as a circumvention technology.
Here's how to add it:
> - Start the [Psiphon Library](https://github.com/Psiphon-Labs/psiphon-tunnel-core/tree/master/MobileLibrary/Android) and get its SOCKS proxy port
> - Configure the Tor client run by Briar to proxy through Psiphon using the "Socks5Proxy" config setting (https://www.torproject.org/docs/tor-manual.html.en)
> - The Tor client traffic egresses from the Psiphon server, connects to a Tor node, and gets to hidden services from there. Psiphon doesn't need to know about the hidden service part.https://code.briarproject.org/briar/briar/-/issues/1285Support OPML feeds2020-11-18T02:31:16ZakwizgranSupport OPML feedsA user asked for the ability to import OPML feeds as well as RSS. It looks like ROME has a module for OPML: http://rometools.github.io/rome-opml/A user asked for the ability to import OPML feeds as well as RSS. It looks like ROME has a module for OPML: http://rometools.github.io/rome-opml/https://code.briarproject.org/briar/briar/-/issues/1197Manual section needed for Bluetooth and Wi-fi.2020-11-18T22:43:47ZPratiwirManual section needed for Bluetooth and Wi-fi.I initially loaded Briar on three devices and added each to the other as a contact, as in the manual. I had bluetooth turned on and wi-fi too. The manual says that after scanning the QR code the devices will exchange information and the ...I initially loaded Briar on three devices and added each to the other as a contact, as in the manual. I had bluetooth turned on and wi-fi too. The manual says that after scanning the QR code the devices will exchange information and the contacts will be added. This works fine, but what isn't clear is how the process takes place. "You must meet up with the person you want to add as a contact." This implies that bluetooth or local Wi-fi is being used silently. This assumption creates confusion because I then assumed that in Android one just has to have the services activated and the rest is taken care of, as you might expect for easy use in a crisis.
I now think that for the devices to send local messages one has to host a hotspot over Wi-fi or bluetooth. So this should be clear in the manual, how to set up the Wi-fi links or bluetooth links properly and what the requirement is for adding contacts. Is it local bluetooth turned on, paired devices required or not, Wi-fi transmitters active, or logged onto same network, full internet access? Can both QR codes be sent by secure e-mail and scanned by the camera at remote locations at the same time, what is the time wimdow?
"If the internet's down, Briar can sync via Bluetooth or Wi-Fi, keeping the information flowing in a crisis." This is the only information in the manual and potentially wrong assumptions about it make actual testing and getting it working more difficult and confusing than it needs to be. The manual is quite compact, but needs additional concise information about what is going on.CleopatraCleopatra