briar issueshttps://code.briarproject.org/briar/briar/-/issues2018-06-12T11:32:23Zhttps://code.briarproject.org/briar/briar/-/issues/531Unread forum post counter is not always updated when returning to forum list2018-06-12T11:32:23ZakwizgranUnread forum post counter is not always updated when returning to forum listWhen returning from a forum to the forum list using the back button, the forum's unread post counter is not always updated. The counter can be forced to updated by rotating the screen.When returning from a forum to the forum list using the back button, the forum's unread post counter is not always updated. The counter can be forced to updated by rotating the screen.Milestone ETorsten GroteTorsten Grotehttps://code.briarproject.org/briar/briar/-/issues/527NPE when traversing message tree2018-06-12T11:32:23ZakwizgranNPE when traversing message treeThe HTC Wildfire S crashed with this exception while investigating #516. The crash occurred after receiving new forum posts. After the first 40 posts arrived I touched the notification to navigate to the forum, then used the back button ...The HTC Wildfire S crashed with this exception while investigating #516. The crash occurred after receiving new forum posts. After the first 40 posts arrived I touched the notification to navigate to the forum, then used the back button to leave. When the remaining posts arrived, the notification was shown again. I touched it again to navigate to the forum and the following crash occurred:
```
07-27 12:32:08.284 998-15469/? E/ACRA: ACRA caught a NullPointerException for org.briarproject
java.lang.NullPointerException
at org.briarproject.clients.MessageTreeImpl.traverse(MessageTreeImpl.java:63)
at org.briarproject.clients.MessageTreeImpl.depthFirstOrder(MessageTreeImpl.java:72)
at org.briarproject.android.forum.ForumPersistentData.getHeaders(ForumPersistentData.java:54)
at org.briarproject.android.forum.ForumControllerImpl.getForumEntries(ForumControllerImpl.java:243)
at org.briarproject.android.forum.ForumControllerImpl$1.run(ForumControllerImpl.java:107)
at org.briarproject.android.controller.DbControllerImpl$1.run(DbControllerImpl.java:35)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1088)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:581)
at java.lang.Thread.run(Thread.java:1027)
```Milestone Ehttps://code.briarproject.org/briar/briar/-/issues/462Development of a consistent onboarding strategy2018-06-12T11:32:25ZMegaloxDevelopment of a consistent onboarding strategyBecause of its serverless nature briar is different than other messaging/forum/blog apps. These differences need to be explained to the user.
A contextual onboarding has to be developed to help the user understand some of the features...Because of its serverless nature briar is different than other messaging/forum/blog apps. These differences need to be explained to the user.
A contextual onboarding has to be developed to help the user understand some of the features and peculiarities of the briar app.
Contextual onboarding is shown once a certain feature becomes relevant or a screen is shown the first time. In some cases it could be helpful to offer an option to reopen the onboarding again. This could be realised via infoicon (app bar).
This is an (incomplete) list of features which require onboarding (Please feel free to add points):
- Account is stored on device, password can't be recovered (current solution: explanation is shown in setup screen)
- Finding the contact screen (#344)
- Prompt to add first contact (current solution: dialog the first time the user signs in, empty state of contact list)
- Prompt to create first forum (current solution: empty state of forum list)
- Prompt to write first forum post (current solution: empty state of forum)
- Prompt to write first blog post (current solution: empty state of blog feed)
- Panic button settings (first time open, reopenable) (#349)
- Introduction feature (as soon as the user made her second contact) (#357, #358)
- Transports/connections
- Verification status indicators (first time a v.s.i. appears)
- Add contact via QR-code:
- One-on-one restriction (first time open, reopenable) (#348)
- Face-to-face restriction (current solution: explanation is shown in add contact screen, empty state of contact list) (#429)
- Connection failures (#71)
- Privacy properties of the app (#86, #315)Milestone Ehttps://code.briarproject.org/briar/briar/-/issues/443IndexOutOfBoundsException when new forum post arrives2018-06-12T11:32:25ZakwizgranIndexOutOfBoundsException when new forum post arrives```
06-22 13:45:53.617 2242-2242/? E/ACRA: ACRA caught a IndexOutOfBoundsException for org.briarproject
java.lang.IndexOutOfBoundsException: Inconsistency detected. Invalid view holder adapter positionViewHolder{41a8c898 position=4 i...```
06-22 13:45:53.617 2242-2242/? E/ACRA: ACRA caught a IndexOutOfBoundsException for org.briarproject
java.lang.IndexOutOfBoundsException: Inconsistency detected. Invalid view holder adapter positionViewHolder{41a8c898 position=4 id=-1, oldPos=3, pLpos:3 scrap [attachedScrap] tmpDetached no parent}
at android.support.v7.widget.RecyclerView$Recycler.validateViewHolderForOffsetPosition(RecyclerView.java:4487)
at android.support.v7.widget.RecyclerView$Recycler.getViewForPosition(RecyclerView.java:4618)
at android.support.v7.widget.RecyclerView$Recycler.getViewForPosition(RecyclerView.java:4599)
at android.support.v7.widget.LinearLayoutManager$LayoutState.next(LinearLayoutManager.java:1988)
at android.support.v7.widget.LinearLayoutManager.layoutChunk(LinearLayoutManager.java:1384)
at android.support.v7.widget.LinearLayoutManager.fill(LinearLayoutManager.java:1347)
at android.support.v7.widget.LinearLayoutManager.onLayoutChildren(LinearLayoutManager.java:574)
at android.support.v7.widget.RecyclerView.dispatchLayoutStep1(RecyclerView.java:2954)
at android.support.v7.widget.RecyclerView.dispatchLayout(RecyclerView.java:2879)
at android.support.v7.widget.RecyclerView.onLayout(RecyclerView.java:3265)
at android.view.View.layout(View.java:11390)
```Milestone Ehttps://code.briarproject.org/briar/briar/-/issues/373Slow Contact list2018-06-12T11:32:28ZErnir ErlingssonSlow Contact listSamsung Galaxy Note 4 (fast device) is taking 4-5 seconds to load the Contact list the first time, with 8+ contacts with a couple of days worth of conversations.Samsung Galaxy Note 4 (fast device) is taking 4-5 seconds to load the Contact list the first time, with 8+ contacts with a couple of days worth of conversations.Milestone ETorsten GroteTorsten Grotehttps://code.briarproject.org/briar/briar/-/issues/358Testers did not understand introductions2018-06-12T11:32:28ZakwizgranTesters did not understand introductionsThe testing report says that the feature could be explained better.The testing report says that the feature could be explained better.Milestone Ehttps://code.briarproject.org/briar/briar/-/issues/357Introduction feature is not very visible2018-06-12T11:32:28ZakwizgranIntroduction feature is not very visibleTesters could not easily discover the introduction feature.Testers could not easily discover the introduction feature.Milestone ETorsten GroteTorsten Grotehttps://code.briarproject.org/briar/briar/-/issues/350Contact list still showed unread message after message had been read2018-06-12T11:32:29ZakwizgranContact list still showed unread message after message had been readA tester got an unread message notification, switched directly to the converstion, read the message, switched to the contact screen, and there was still an unread message indicator next to the contact's name.
This may be a race condit...A tester got an unread message notification, switched directly to the converstion, read the message, switched to the contact screen, and there was still an unread message indicator next to the contact's name.
This may be a race condition between messages being marked as read and the contact list loading the message headers.Milestone ETorsten GroteTorsten Grotehttps://code.briarproject.org/briar/briar/-/issues/329BTP header is not bound to stream number2022-10-27T20:05:25ZakwizgranBTP header is not bound to stream numberThe BTP tag depends on the stream number, but the header does not, so streams using the same tag and header keys could have their tags swapped without detection. This could be used to distinguish BTP from other protocols.The BTP tag depends on the stream number, but the header does not, so streams using the same tag and header keys could have their tags swapped without detection. This could be used to distinguish BTP from other protocols.Milestone Eakwizgranakwizgranhttps://code.briarproject.org/briar/briar/-/issues/309Client layer events for messaging2018-06-12T11:32:30ZakwizgranClient layer events for messagingThe messaging UI currently depends on sync-layer events such as MessageStateChangedEvent. The messaging client should broadcast its own high-level events with the information the UI needs.
Related to #289.The messaging UI currently depends on sync-layer events such as MessageStateChangedEvent. The messaging client should broadcast its own high-level events with the information the UI needs.
Related to #289.Milestone ETorsten GroteTorsten Grotehttps://code.briarproject.org/briar/briar/-/issues/245Create constants for keys used to store extras in intents2018-06-12T11:32:33ZakwizgranCreate constants for keys used to store extras in intents> @ernir: We really should make constants for all of these keys, I don't want to spend any time debugging in the future because of a spelling error...> @ernir: We really should make constants for all of these keys, I don't want to spend any time debugging in the future because of a spelling error...Milestone Ehttps://code.briarproject.org/briar/briar/-/issues/127Private groups2018-06-12T11:32:38ZakwizgranPrivate groupsUsers should be able to create private groups to have confidential conversations among a known set of identities. This will be a new top-level section in the UI, separate from forums.
Users should be able to create private groups to have confidential conversations among a known set of identities. This will be a new top-level section in the UI, separate from forums.
Milestone Ehttps://code.briarproject.org/briar/briar/-/issues/92Emoticons2018-06-12T11:32:39ZakwizgranEmoticonsSeveral users asked for emoticons. We may be able to use the same emoji pack as ChatSecure:
https://play.google.com/store/apps/details?id=info.guardianproject.chatsecure.emoji.core
https://github.com/Genshin/PhantomOpenEmoji
Several users asked for emoticons. We may be able to use the same emoji pack as ChatSecure:
https://play.google.com/store/apps/details?id=info.guardianproject.chatsecure.emoji.core
https://github.com/Genshin/PhantomOpenEmoji
Milestone ETorsten GroteTorsten Grotehttps://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/900Simplify Sharing Client State Machine2017-12-18T07:40:22ZTorsten GroteSimplify Sharing Client State MachineOld State Machine
![old](https://code.briarproject.org/akwizgran/briar/uploads/7c45438c6f90e96422d8c8bff7275dcc/state-machine-2.png)
New State Machine
![new](https://code.briarproject.org/akwizgran/briar/uploads/a38c6a152df9d9ee3d76d2263...Old State Machine
![old](https://code.briarproject.org/akwizgran/briar/uploads/7c45438c6f90e96422d8c8bff7275dcc/state-machine-2.png)
New State Machine
![new](https://code.briarproject.org/akwizgran/briar/uploads/a38c6a152df9d9ee3d76d2263d05e3f1/state-machine-3.png)
In addition, the [error state should be eliminated](/akwizgran/briar/issues/721#note_18410). If an error occurs, we send an abort message, clean up the external state (for example, unshare the group), and return to the start state (with the abort message's ID as the previous message ID). If we get an abort message, we clean up the external state and return to the start state. We don't send an abort message in response, otherwise we'd get into a loop.Milestone FTorsten GroteTorsten Grotehttps://code.briarproject.org/briar/briar/-/issues/889Wrong item is selected in nav drawer after touching notification2017-12-18T07:40:22ZakwizgranWrong item is selected in nav drawer after touching notificationSteps to reproduce:
* Select 'contacts' from the nav drawer
* A contact writes a blog post
* Touch the notification, which opens the combined blog feed
* Open the nav drawer - 'contacts' is selectedSteps to reproduce:
* Select 'contacts' from the nav drawer
* A contact writes a blog post
* Touch the notification, which opens the combined blog feed
* Open the nav drawer - 'contacts' is selectedMilestone FJulian DehmJulian Dehmhttps://code.briarproject.org/briar/briar/-/issues/882FeedManagerImpl logs RSS feed URLs2017-12-18T07:40:23ZakwizgranFeedManagerImpl logs RSS feed URLsThis is sensitive information that shouldn't be logged.This is sensitive information that shouldn't be logged.Milestone FTorsten GroteTorsten Grotehttps://code.briarproject.org/briar/briar/-/issues/881ForumActivityTest fails due to custom toolbar2017-12-18T07:40:23ZakwizgranForumActivityTest fails due to custom toolbar```
java.lang.IllegalStateException: This Activity already has an action bar supplied by the window decor. Do not request Window.FEATURE_SUPPORT_ACTION_BAR and set windowActionBar to false in your theme to use a Toolbar instead.
at and...```
java.lang.IllegalStateException: This Activity already has an action bar supplied by the window decor. Do not request Window.FEATURE_SUPPORT_ACTION_BAR and set windowActionBar to false in your theme to use a Toolbar instead.
at android.support.v7.app.AppCompatDelegateImplV7.setSupportActionBar(AppCompatDelegateImplV7.java:197)
at android.support.v7.app.AppCompatActivity.setSupportActionBar(AppCompatActivity.java:129)
at org.briarproject.briar.android.activity.BriarActivity.setUpCustomToolbar(BriarActivity.java:109)
at org.briarproject.briar.android.forum.ForumActivity.onCreate(ForumActivity.java:66)
at android.app.Activity.performCreate(Activity.java:5933)
at org.robolectric.util.ReflectionHelpers.callInstanceMethod(ReflectionHelpers.java:195)
at org.robolectric.util.ActivityController$1.run(ActivityController.java:122)
at org.robolectric.shadows.ShadowLooper.runPaused(ShadowLooper.java:304)
at org.robolectric.shadows.CoreShadowsAdapter$2.runPaused(CoreShadowsAdapter.java:45)
at org.robolectric.util.ActivityController.create(ActivityController.java:118)
at org.robolectric.util.ActivityController.create(ActivityController.java:129)
at org.briarproject.briar.android.forum.ForumActivityTest.setUp(ForumActivityTest.java:93)
```Milestone FTorsten GroteTorsten Grotehttps://code.briarproject.org/briar/briar/-/issues/879Implement Threaded Unread Handling2017-12-18T07:40:23ZTorsten GroteImplement Threaded Unread HandlingBased on the feature specification from #478, this ticket is for the actual implementation of this feature.
![mockup](https://code.briarproject.org/akwizgran/briar/uploads/89ad16273315aa10922a222c2ba090f3/forum_01_up_and_down.jpg)
...Based on the feature specification from #478, this ticket is for the actual implementation of this feature.
![mockup](https://code.briarproject.org/akwizgran/briar/uploads/89ad16273315aa10922a222c2ba090f3/forum_01_up_and_down.jpg)
When the user scrolls the forum list, visible unread entries will be marked read after playing their animation. The unread counters on the two floating buttons are updated accordingly. If the user presses the floating button, the list scrolls to the nearest unread message in that direction which plays its animation. While the list scrolls, no messages that are passed will be marked as read.
When a new message arrives, the counters are updated accordingly when the new message is not visible in the current viewport. If it is visible, its animation plays and it is marked as read. If the message arrives in a closed thread, the root message has an unread counter signaling the availability of unread messages in that thread.
If there are no more unread messages in one direction, the respective floating button will be hidden.
When the user opens the forum next time, the list should scroll to the most recently read message (easy to implement via MessageTracker). It's a good compromise between taking the user somewhere familiar, and taking her to the latest content. But scrolling to the first unread message, as we've discussed previously, would also be reasonable.Milestone FTorsten GroteTorsten Grotehttps://code.briarproject.org/briar/briar/-/issues/877Save invitation outcome to invitation message and make available to UI2017-12-18T07:40:23ZTorsten GroteSave invitation outcome to invitation message and make available to UIThe shareable of an invitation can only be opened when an invitation was accepted and we still subscribe to the shareable.
To be able to set `canBeOpened` to a proper value, the user's response needs to be recorded in the invitation's m...The shareable of an invitation can only be opened when an invitation was accepted and we still subscribe to the shareable.
To be able to set `canBeOpened` to a proper value, the user's response needs to be recorded in the invitation's metadata.
For the group invitation protocol the response could be stored in `InviteeProtocolEngine#onLocalAccept()` at the same time as marking the invitation unavailable to answer, then retrieved in `GroupManagerImpl#parseInvitationRequest()`.Milestone FTorsten GroteTorsten Grote