briar issueshttps://code.briarproject.org/groups/briar/-/issues2017-12-18T07:40:39Zhttps://code.briarproject.org/briar/briar/-/issues/715Long posts aren't rendered2017-12-18T07:40:39ZakwizgranLong posts aren't renderedOn the Galaxy Nexus, long blog posts from an RSS feed aren't rendered. The following warning is logged:
```
10-20 15:37:47.647 18342-18342/org.briarproject W/View: View too large to fit into drawing cache, needs 4553568 bytes, only 368...On the Galaxy Nexus, long blog posts from an RSS feed aren't rendered. The following warning is logged:
```
10-20 15:37:47.647 18342-18342/org.briarproject W/View: View too large to fit into drawing cache, needs 4553568 bytes, only 3686400 available
```
Shorter posts from the same feed render without problems. Looks like this might be caused by software rendering. At least we have a device that prints useful warnings about this. :-)Milestone ETorsten GroteTorsten Grotehttps://code.briarproject.org/briar/briar/-/issues/712Throw FormatException if BdfList index is out of bounds2017-12-18T07:40:39ZakwizgranThrow FormatException if BdfList index is out of boundsCurrently an ArrayIndexOutOfBoundsException will be thrown, which could be a source of crashes when parsing untrusted data.Currently an ArrayIndexOutOfBoundsException will be thrown, which could be a source of crashes when parsing untrusted data.Milestone Eakwizgranakwizgranhttps://code.briarproject.org/briar/briar/-/issues/709Implement protocol for private group invitations2017-12-18T07:40:39ZakwizgranImplement protocol for private group invitationsSpec ticket is #659. Subtask of #127.Spec ticket is #659. Subtask of #127.Milestone Eakwizgranakwizgranhttps://code.briarproject.org/briar/briar/-/issues/708Implement protocol for private group messaging2017-12-18T07:40:39ZakwizgranImplement protocol for private group messagingSpec ticket is #658. Subtask of #127.Spec ticket is #658. Subtask of #127.Milestone ETorsten GroteTorsten Grotehttps://code.briarproject.org/briar/briar/-/issues/707Implement UX for showing and answering private group invitations2017-12-18T07:40:39ZTorsten GroteImplement UX for showing and answering private group invitationsDepends on #648. Subtask of #127.
![](https://code.briarproject.org/akwizgran/briar/uploads/2cfb10c1cc3ebd85804b6fd0d7edae24/648_B_flow.jpg)Depends on #648. Subtask of #127.
![](https://code.briarproject.org/akwizgran/briar/uploads/2cfb10c1cc3ebd85804b6fd0d7edae24/648_B_flow.jpg)Milestone ETorsten GroteTorsten Grotehttps://code.briarproject.org/briar/briar/-/issues/696NPE when stopping KeyAgreementTask2018-06-12T11:32:17ZakwizgranNPE when stopping KeyAgreementTaskThis comes from the attached crash report:
```
10-01 13:32:55.236 E/ACRA (12071): ACRA caught a NullPointerException for org.briarproject.unofficial
10-01 13:32:55.236 E/ACRA (12071): java.lang.NullPointerException: Attempt to i...This comes from the attached crash report:
```
10-01 13:32:55.236 E/ACRA (12071): ACRA caught a NullPointerException for org.briarproject.unofficial
10-01 13:32:55.236 E/ACRA (12071): java.lang.NullPointerException: Attempt to invoke interface method 'void org.briarproject.api.keyagreement.KeyAgreementTask.stopListening()' on a null object reference
10-01 13:32:55.236 E/ACRA (12071): at org.briarproject.android.keyagreement.ShowQrCodeFragment$3.run(ShowQrCodeFragment.java:192)
```
The user has customised the package name and version number, so there may be other modifications.
[report-5444258362477720692.json](/uploads/c9cd2a9bab424cbf12f00a143f5a8ced/report-5444258362477720692.json)Milestone Eakwizgranakwizgranhttps://code.briarproject.org/briar/briar/-/issues/695Introduction failure2018-06-12T11:32:17ZakwizgranIntroduction failure* Set up three devices (Ace, Moto and Sony)
* Ace and Moto add each other as contacts
* Sony and Moto add each other as contacts
* Moto introduces Ace to Sony
* Sony accepts
* Ace accepts
* Moto receives Ace's ack and enters the error st...* Set up three devices (Ace, Moto and Sony)
* Ace and Moto add each other as contacts
* Sony and Moto add each other as contacts
* Moto introduces Ace to Sony
* Sony accepts
* Ace accepts
* Moto receives Ace's ack and enters the error state
The problem seems to be that Moto is receiving Ace's ack before Ace's response.
Log from Ace:
```
10-04 15:52:45.613 5426-5522/org.briarproject I/IntroduceeEngine: Received Introduction in state AWAIT_REQUEST from Moto with session ID -652500394 in group -1226669137. Moving on to state AWAIT_RESPONSES
10-04 15:52:54.622 5426-5522/org.briarproject I/IntroduceeEngine: Received Response in state AWAIT_RESPONSES from Moto related to Sony with session ID -652500394 in group -1226669137. Moving on to state AWAIT_LOCAL_RESPONSE
10-04 15:52:56.074 5426-5522/org.briarproject I/IntroduceeEngine: Sending accept response in state AWAIT_LOCAL_RESPONSE to Moto for Sony with session ID -652500394 in group -1226669137. Moving on to state AWAIT_ACK
10-04 15:52:58.426 5426-5522/org.briarproject I/IntroduceeManager: Adding contact in inactive state
10-04 15:52:58.876 5426-5522/org.briarproject I/IntroduceeEngine: Sending ACK to Moto for Sony with session ID -652500394 in group -1226669137
10-04 15:53:01.330 5426-5522/org.briarproject I/IntroduceeEngine: Received Abort in state AWAIT_ACK from Moto related to Sony with session ID -652500394 in group -1226669137. Moving on to state ERROR
```
Log from Moto:
```
10-04 15:52:00.776 9254-9993/org.briarproject I/IntroducerEngine: Sending introduction request in state PREPARE_REQUESTS to Ace with session ID -652500394 in group -1226669137. Moving on to state AWAIT_RESPONSES
10-04 15:52:00.776 9254-9993/org.briarproject I/IntroducerEngine: Sending introduction request in state PREPARE_REQUESTS to Sony with session ID -652500394 in group -1923720712. Moving on to state AWAIT_RESPONSES
10-04 15:52:10.336 9254-9993/org.briarproject I/IntroducerEngine: Received Response in state AWAIT_RESPONSES from Sony to Ace with session ID -652500394 in group -1923720712. Moving on to state AWAIT_RESPONSE_1
10-04 15:52:10.337 9254-9993/org.briarproject I/IntroducerEngine: Forwarding message to group -1226669137
10-04 15:52:16.592 9254-9993/org.briarproject I/IntroducerEngine: Received ACK in state AWAIT_RESPONSE_1 from Ace to Sony with session ID -652500394 in group -1226669137. Moving on to state ERROR
10-04 15:52:16.592 9254-9993/org.briarproject W/IntroducerEngine: Aborting protocol session -652500394 in state AWAIT_RESPONSE_1
10-04 15:52:16.727 9254-9993/org.briarproject I/IntroducerEngine: Received Response in state ERROR from Ace to Sony with session ID -652500394 in group -1226669137. Moving on to state ERROR
```
Log from Sony:
```
10-04 15:52:46.079 2996-3845/org.briarproject I/IntroduceeEngine: Received Introduction in state AWAIT_REQUEST from Moto with session ID -652500394 in group -1923720712. Moving on to state AWAIT_RESPONSES
10-04 15:52:52.329 2996-3845/org.briarproject I/IntroduceeEngine: Sending accept response in state AWAIT_RESPONSES to Moto for Ace with session ID -652500394 in group -1923720712. Moving on to state AWAIT_REMOTE_RESPONSE
10-04 15:53:02.029 2996-3845/org.briarproject I/IntroduceeEngine: Received Abort in state AWAIT_REMOTE_RESPONSE from Moto related to Ace with session ID -652500394 in group -1923720712. Moving on to state ERROR
```Milestone ETorsten GroteTorsten Grotehttps://code.briarproject.org/briar/briar/-/issues/694NPE in ShareActivity when going back2018-06-12T11:32:17ZTorsten GroteNPE in ShareActivity when going back```
java.lang.NullPointerException: Attempt to invoke virtual method 'int java.util.ArrayList.size()' on a null object reference
at org.briarproject.android.sharing.ShareActivity.getContactsFromIntegers(Sha...```
java.lang.NullPointerException: Attempt to invoke virtual method 'int java.util.ArrayList.size()' on a null object reference
at org.briarproject.android.sharing.ShareActivity.getContactsFromIntegers(ShareActivity.java:85)
at org.briarproject.android.sharing.ContactSelectorFragment.onCreateView(ContactSelectorFragment.java:125)
at android.support.v4.app.Fragment.performCreateView(Fragment.java:1974)
at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1067)
at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1252)
at android.support.v4.app.BackStackRecord.popFromBackStack(BackStackRecord.java:971)
at android.support.v4.app.FragmentManagerImpl.popBackStackState(FragmentManager.java:1670)
at android.support.v4.app.FragmentManagerImpl.popBackStackImmediate(FragmentManager.java:586)
at android.support.v4.app.FragmentActivity.onBackPressed(FragmentActivity.java:189)
at org.briarproject.android.sharing.ShareMessageFragment.onOptionsItemSelected(ShareMessageFragment.java:100)
at org.briarproject.android.sharing.ShareForumMessageFragment.onOptionsItemSelected(ShareForumMessageFragment.java:23)
```Milestone ETorsten GroteTorsten Grotehttps://code.briarproject.org/briar/briar/-/issues/690Introduction onboarding is shown again if it's dismissed2018-06-12T11:32:17ZakwizgranIntroduction onboarding is shown again if it's dismissedIf I tap outside the tap target to dismiss the onboarding, it's shown again next time I open the screen.If I tap outside the tap target to dismiss the onboarding, it's shown again next time I open the screen.Milestone ETorsten GroteTorsten Grotehttps://code.briarproject.org/briar/briar/-/issues/688ProGuard warns about missing descriptor classes2018-06-12T11:32:17ZakwizgranProGuard warns about missing descriptor classesFor some of the emoji classes, ProGuard warns that "the configuration keeps the entry point, but not the descriptor class". The ProGuard docs say this can be fixed by adding `includedescriptorclasses` to the `-keep` argument.
http://pro...For some of the emoji classes, ProGuard warns that "the configuration keeps the entry point, but not the descriptor class". The ProGuard docs say this can be fixed by adding `includedescriptorclasses` to the `-keep` argument.
http://proguard.sourceforge.net/manual/troubleshooting.html#descriptorclassMilestone ETorsten GroteTorsten Grotehttps://code.briarproject.org/briar/briar/-/issues/687Refactor existing adapters into a generic superclass2018-06-12T11:32:17ZTorsten GroteRefactor existing adapters into a generic superclassWe have a lot of adapters with very similar methods for managing their sorted lists - a lot of this could probably be refactored into a generic superclass.We have a lot of adapters with very similar methods for managing their sorted lists - a lot of this could probably be refactored into a generic superclass.Milestone ETorsten GroteTorsten Grotehttps://code.briarproject.org/briar/briar/-/issues/686Crash when transitioning out of ReblogActivity2018-06-12T11:32:17ZakwizgranCrash when transitioning out of ReblogActivitySteps to reproduce:
* Write a few blog posts, so your first post scrolls off-screen
* Reblog your first post
The crash occurs during the transition back to FeedFragment. The stack trace isn't very helpful:
```
09-29 17:36:03.692 19559-1...Steps to reproduce:
* Write a few blog posts, so your first post scrolls off-screen
* Reblog your first post
The crash occurs during the transition back to FeedFragment. The stack trace isn't very helpful:
```
09-29 17:36:03.692 19559-19559/org.briarproject E/ACRA: ACRA caught a NullPointerException for org.briarproject
java.lang.NullPointerException: Attempt to invoke virtual method 'int android.view.ViewGroup.getScrollX()' on a null object reference
at android.app.ActivityTransitionCoordinator.setSharedElementState(ActivityTransitionCoordinator.java:488)
at android.app.ActivityTransitionCoordinator.setSharedElementState(ActivityTransitionCoordinator.java:565)
at android.app.EnterTransitionCoordinator.startSharedElementTransition(EnterTransitionCoordinator.java:329)
at android.app.EnterTransitionCoordinator.access$100(EnterTransitionCoordinator.java:41)
at android.app.EnterTransitionCoordinator$5$1.run(EnterTransitionCoordinator.java:396)
at android.app.ActivityTransitionCoordinator.startTransition(ActivityTransitionCoordinator.java:794)
at android.app.EnterTransitionCoordinator$5.onPreDraw(EnterTransitionCoordinator.java:393)
at android.view.ViewTreeObserver.dispatchOnPreDraw(ViewTreeObserver.java:944)
at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:2000)
at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1084)
at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:5990)
at android.view.Choreographer$CallbackRecord.run(Choreographer.java:767)
at android.view.Choreographer.doCallbacks(Choreographer.java:580)
at android.view.Choreographer.doFrame(Choreographer.java:550)
at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:753)
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:5343)
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:905)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:700)
```Milestone ETorsten GroteTorsten Grotehttps://code.briarproject.org/briar/briar/-/issues/685IllegalArgumentException: String is shorter than TEASER_LENGTH2018-12-19T12:22:43ZakwizgranIllegalArgumentException: String is shorter than TEASER_LENGTH```
09-29 14:47:30.602 16471-16471/? E/ACRA: ACRA caught a IllegalArgumentException for org.briarproject
java.lang.IllegalArgumentException: String is shorter than TEASER_LENGTH
at org.briarproject.android.util.AndroidUtils.getTe...```
09-29 14:47:30.602 16471-16471/? E/ACRA: ACRA caught a IllegalArgumentException for org.briarproject
java.lang.IllegalArgumentException: String is shorter than TEASER_LENGTH
at org.briarproject.android.util.AndroidUtils.getTeaser(AndroidUtils.java:130)
at org.briarproject.android.blogs.BlogPostViewHolder.bindItem(BlogPostViewHolder.java:122)
at org.briarproject.android.blogs.BlogPostAdapter.onBindViewHolder(BlogPostAdapter.java:73)
at org.briarproject.android.blogs.BlogPostAdapter.onBindViewHolder(BlogPostAdapter.java:14)
```
The crash is caused by checking the length of the text before spanning, then passing in the spanned text, which is apparently shorter. Should be an easy fix.Milestone Eakwizgranakwizgranhttps://code.briarproject.org/briar/briar/-/issues/681Convert forum post bodies to strings, remove content type2018-06-12T11:32:17ZakwizgranConvert forum post bodies to strings, remove content typeMilestone ETorsten GroteTorsten Grotehttps://code.briarproject.org/briar/briar/-/issues/680CameraView surface is leaked on Android 4.2.2 and older2018-06-12T11:32:17ZakwizgranCameraView surface is leaked on Android 4.2.2 and olderA few seconds after leaving the CameraView on the Y330 I get the following warning:
```
09-28 12:04:36.925 17763-17773/org.briarproject E/StrictMode: A resource was acquired at attached stack trace but never released. See java.io.Closeab...A few seconds after leaving the CameraView on the Y330 I get the following warning:
```
09-28 12:04:36.925 17763-17773/org.briarproject 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 'release' not called
at dalvik.system.CloseGuard.open(CloseGuard.java:184)
at android.view.Surface.<init>(Surface.java:291)
at android.view.SurfaceView.<init>(SurfaceView.java:102)
at org.briarproject.android.view.CameraView.<init>(CameraView.java:51)
at java.lang.reflect.Constructor.constructNative(Native Method)
at java.lang.reflect.Constructor.newInstance(Constructor.java:417)
at android.view.LayoutInflater.createView(LayoutInflater.java:587)
at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:687)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:746)
at android.view.LayoutInflater.inflate(LayoutInflater.java:489)
at android.view.LayoutInflater.inflate(LayoutInflater.java:396)
at org.briarproject.android.keyagreement.ShowQrCodeFragment.onCreateView(ShowQrCodeFragment.java:111)
```
The cause appears to be this bug, which was fixed some time after Android 4.2.2:
https://code.google.com/p/android/issues/detail?id=54285
The bug can be worked around by manually releasing the surface.Milestone Eakwizgranakwizgranhttps://code.briarproject.org/briar/briar/-/issues/679Own personal blogs can be removed2018-06-12T11:32:17ZTorsten GroteOwn personal blogs can be removedThe `canBeRemoved()` method seems to return `true` for own personal blogs now. There should be a test for that to prevent this regression in the future.The `canBeRemoved()` method seems to return `true` for own personal blogs now. There should be a test for that to prevent this regression in the future.Milestone ETorsten GroteTorsten Grotehttps://code.briarproject.org/briar/briar/-/issues/678Implement UX for viewing the membership of a private group2018-06-05T20:39:27ZakwizgranImplement UX for viewing the membership of a private groupDesign ticket is #657. Subtask of #undefined
![](https://code.briarproject.org/akwizgran/briar/uploads/970095a7bdb2bfb6b1684ffe82ea6a94/657_member_list.jpg)
Design ticket is #657. Subtask of #undefined
![](https://code.briarproject.org/akwizgran/briar/uploads/970095a7bdb2bfb6b1684ffe82ea6a94/657_member_list.jpg)
Milestone ETorsten GroteTorsten Grotehttps://code.briarproject.org/briar/briar/-/issues/677Unavailable menu items should be disabled rather than removed2018-06-05T20:39:27ZakwizgranUnavailable menu items should be disabled rather than removedPer the material design guidelines: https://material.google.com/components/menus.html#menus-menu-items
Two existing menu items are affected: make introduction and remove blog.Per the material design guidelines: https://material.google.com/components/menus.html#menus-menu-items
Two existing menu items are affected: make introduction and remove blog.Milestone ETorsten GroteTorsten Grotehttps://code.briarproject.org/briar/briar/-/issues/676Keyboard isn't shown when forum text entry field gets focus2018-06-12T11:32:17ZakwizgranKeyboard isn't shown when forum text entry field gets focusWhen touching the compose or reply button in a forum, the text entry field appears and gets focus, but the keyboard isn't shown until the field is touched. The keyboard should be shown automatically.When touching the compose or reply button in a forum, the text entry field appears and gets focus, but the keyboard isn't shown until the field is touched. The keyboard should be shown automatically.Milestone ETorsten GroteTorsten Grotehttps://code.briarproject.org/briar/briar/-/issues/674Ending a transaction can throw an exception in a finally block2018-06-12T11:32:18ZakwizgranEnding a transaction can throw an exception in a finally blockWe use the following pattern to commit or roll back a transaction:
```
Transaction txn = db.startTransaction();
try {
db.doSomething(txn);
txn.setComplete();
} finally {
db.endTransaction(txn);
}
```
`DatabaseComponent#endTr...We use the following pattern to commit or roll back a transaction:
```
Transaction txn = db.startTransaction();
try {
db.doSomething(txn);
txn.setComplete();
} finally {
db.endTransaction(txn);
}
```
`DatabaseComponent#endTransaction()` can throw a `DbException`, and Android Studio warns about the potential for the exception to be thrown in a finally block.
We should move the exception-throwing code from `endTransaction()` into a new `commitTransaction()` method, which replaces `Transaction#setComplete()` and is called inside the try block. The new contract of `endTransaction()` should be to abort the transaction if it has not already been committed, and release the database lock in either case.
```
Transaction txn = db.startTransaction();
try {
db.doSomething(txn);
db.commitTransaction(txn);
} finally {
db.endTransaction(txn);
}
```Milestone ETorsten GroteTorsten Grote