briar issueshttps://code.briarproject.org/briar/briar/-/issues2022-05-16T19:53:43Zhttps://code.briarproject.org/briar/briar/-/issues/2113Tapping send button twice sends duplicate message2022-05-16T19:53:43ZakwizgranTapping send button twice sends duplicate message* Android version: 11
* Phone model: Pixel 3a (aosp_sargo)
* Briar version: 1.3.4 (76b7e6f)
* User feedback: "When I hit send twice it double sent the same message."
Log snippet:
```
05-31 23:06:14.209 I/BaseActivity: Starting Conversat...* Android version: 11
* Phone model: Pixel 3a (aosp_sargo)
* Briar version: 1.3.4 (76b7e6f)
* User feedback: "When I hit send twice it double sent the same message."
Log snippet:
```
05-31 23:06:14.209 I/BaseActivity: Starting ConversationActivity
05-31 23:06:14.211 I/BaseActivity: Resuming ConversationActivity
05-31 23:06:14.676 I/BaseActivity: Stopping NavDrawerActivity
05-31 23:06:16.966 I/ConversationActivity: Eagerly loading text for latest message
05-31 23:06:28.283 I/DuplexOutgoingSession: Sending keepalive
05-31 23:06:38.292 I/DuplexOutgoingSession: Sending keepalive
05-31 23:06:43.774 I/AutoDeleteManagerImpl: Sending message with auto-delete timer -1
05-31 23:06:44.370 I/DuplexOutgoingSession: Generated offer: false
05-31 23:06:44.389 I/DuplexOutgoingSession: Next send time decreased
05-31 23:06:44.405 I/DuplexOutgoingSession: Generated offer: true
05-31 23:06:44.405 I/DuplexOutgoingSession: Sent offer
05-31 23:06:44.424 I/DuplexOutgoingSession: Generated offer: false
05-31 23:06:45.299 I/DuplexOutgoingSession: Generated batch: true
05-31 23:06:45.299 I/ConversationActivity: Messages sent
05-31 23:06:45.299 I/DuplexOutgoingSession: Sent batch
05-31 23:06:45.317 I/DuplexOutgoingSession: Generated batch: false
05-31 23:06:46.268 I/ConversationActivity: Messages acked
05-31 23:06:58.284 I/DuplexOutgoingSession: Sending keepalive
05-31 23:07:01.226 I/AutoDeleteManagerImpl: Sending message with auto-delete timer -1
05-31 23:07:03.058 I/AutoDeleteManagerImpl: Sending message with auto-delete timer -1
05-31 23:07:03.119 I/DuplexOutgoingSession: Generated offer: false
05-31 23:07:03.159 I/DuplexOutgoingSession: Generated offer: true
05-31 23:07:03.159 I/DuplexOutgoingSession: Sent offer
05-31 23:07:03.181 I/DuplexOutgoingSession: Generated offer: false
05-31 23:07:03.229 I/DuplexOutgoingSession: Generated offer: false
05-31 23:07:04.144 I/DuplexOutgoingSession: Generated batch: true
05-31 23:07:04.144 I/ConversationActivity: Messages sent
05-31 23:07:04.144 I/DuplexOutgoingSession: Sent batch
05-31 23:07:04.163 I/DuplexOutgoingSession: Generated batch: false
05-31 23:07:04.915 I/ConversationActivity: Messages acked
```
Earlier in the log, `Trim memory: running critically low` is logged several times, so the phone may be responding slower than usual.https://code.briarproject.org/briar/briar/-/issues/2112Add contact via forum2021-07-12T10:56:00ZakwizgranAdd contact via forumA user asked for the ability to add contacts via a forum without having to share Briar links manually.A user asked for the ability to add contacts via a forum without having to share Briar links manually.https://code.briarproject.org/briar/briar/-/issues/2111Hidden conversations2021-07-12T11:17:21ZakwizgranHidden conversationsA user asked for hidden conversations that aren't shown in the contact list unless a PIN is entered. Apparently Viber has this feature.A user asked for hidden conversations that aren't shown in the contact list unless a PIN is entered. Apparently Viber has this feature.https://code.briarproject.org/briar/briar/-/issues/2110Links to blogs and forums2021-07-12T10:35:28ZakwizgranLinks to blogs and forumsA user asked for the ability to share a link to a forum or blog. This would be difficult to support in the current architecture, but as usual I'm recording the request so we can understand the gaps between what we've built and what users...A user asked for the ability to share a link to a forum or blog. This would be difficult to support in the current architecture, but as usual I'm recording the request so we can understand the gaps between what we've built and what users would like us to build.https://code.briarproject.org/briar/briar/-/issues/2109AssertionError in RssFeedViewModel2021-08-27T11:44:00ZakwizgranAssertionError in RssFeedViewModel* Android version: 10
* Phone model: Xiaomi M2007J17G (gauguin_eea)
* Briar version: 1.3.5 (0040753)
Stacktrace:
```
java.lang.AssertionError
at org.briarproject.briar.android.blog.RssFeedViewModel.retryImportFeed(RssFeedViewMod...* Android version: 10
* Phone model: Xiaomi M2007J17G (gauguin_eea)
* Briar version: 1.3.5 (0040753)
Stacktrace:
```
java.lang.AssertionError
at org.briarproject.briar.android.blog.RssFeedViewModel.retryImportFeed(RssFeedViewModel.java:164)
at org.briarproject.briar.android.blog.RssFeedImportFailedDialogFragment.lambda$onCreateDialog$0(RssFeedImportFailedDialogFragment.java:49)
at org.briarproject.briar.android.blog.RssFeedImportFailedDialogFragment.lambda$onCreateDialog$0$RssFeedImportFailedDialogFragment(Unknown Source:0)
at org.briarproject.briar.android.blog.-$$Lambda$RssFeedImportFailedDialogFragment$pu5aDqHpggPx9uh0wirjeVhuMbA.onClick(Unknown Source:2)
at androidx.appcompat.app.AlertController$ButtonHandler.handleMessage(AlertController.java:167)
at android.os.Handler.dispatchMessage(Handler.java:107)
at android.os.Looper.loop(Looper.java:224)
at android.app.ActivityThread.main(ActivityThread.java:7574)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:539)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:950)
```
Edited log:
```
07-09 09:10:45.890 I/IdentityManagerImpl: Identity loaded
07-09 09:10:45.893 I/LifecycleManagerImpl: Starting services
07-09 09:10:45.895 I/CleanupManagerImpl: Scheduling cleanup task in 1000 ms
07-09 09:10:45.917 I/PluginManagerImpl: Starting simplex plugins
07-09 09:10:45.917 I/PluginManagerImpl: Starting duplex plugins
07-09 09:10:45.963 I/BaseActivity: Pausing StartupActivity
07-09 09:10:45.976 I/BriarActivity: Recreating RssFeedActivity after signing in
07-09 09:10:45.979 I/BaseActivity: Starting RssFeedActivity
07-09 09:10:46.058 I/BaseActivity: Resuming RssFeedActivity
07-09 09:10:46.107 I/BaseActivity: Pausing RssFeedActivity
07-09 09:10:46.110 I/BaseActivity: Stopping RssFeedActivity
07-09 09:10:46.131 I/BaseActivity: Destroying RssFeedActivity
07-09 09:10:46.153 I/BaseActivity: Creating RssFeedActivity
07-09 09:10:46.194 I/BaseActivity: Starting RssFeedActivity
07-09 09:10:46.199 I/BaseActivity: Resuming RssFeedActivity
07-09 09:10:46.558 I/BaseActivity: Stopping StartupActivity
07-09 09:10:46.559 I/BaseActivity: Destroying StartupActivity
```Android 1.3IvanaIvanahttps://code.briarproject.org/briar/briar/-/issues/2108IllegalArgumentException when resuming NavDrawerActivity after signing in2021-11-04T11:03:26ZakwizgranIllegalArgumentException when resuming NavDrawerActivity after signing in* Briar version: 1.3.5
* User feedback: "I just updated Briar and tried to sign in again."
Stacktrace:
```
java.lang.IllegalArgumentException
at android.os.Parcel.createException(Parcel.java:1954)
at android.os.Parcel.re...* Briar version: 1.3.5
* User feedback: "I just updated Briar and tried to sign in again."
Stacktrace:
```
java.lang.IllegalArgumentException
at android.os.Parcel.createException(Parcel.java:1954)
at android.os.Parcel.readException(Parcel.java:1918)
at android.os.Parcel.readException(Parcel.java:1868)
at android.view.IWindowSession$Stub$Proxy.addToDisplay(IWindowSession.java:826)
at android.view.ViewRootImpl.setView(ViewRootImpl.java:758)
at android.view.WindowManagerGlobal.addView(WindowManagerGlobal.java:356)
at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:93)
at android.app.ActivityThread.handleResumeActivity(ActivityThread.java:3906)
at android.app.servertransaction.ResumeActivityItem.execute(ResumeActivityItem.java:51)
at android.app.servertransaction.TransactionExecutor.executeLifecycleState(TransactionExecutor.java:145)
at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:70)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1816)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loop(Looper.java:193)
at android.app.ActivityThread.main(ActivityThread.java:6718)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:491)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:858)
Caused by: android.os.RemoteException: Remote stack trace:
at android.view.SurfaceControl.nativeCreate(Native Method)
at android.view.SurfaceControl.<init>(SurfaceControl.java:630)
at android.view.SurfaceControl.<init>(SurfaceControl.java:60)
at android.view.SurfaceControl$Builder.build(SurfaceControl.java:386)
at com.android.server.wm.WindowContainer.onParentSet(WindowContainer.java:184)
```
Edited log:
```
07-06 13:21:56.622 I/BriarApplicationImpl: Created
07-06 13:21:56.687 I/AccountManagerImpl: Found database key in primary file
07-06 13:26:24.732 I/BaseActivity: Creating SplashScreenActivity
07-06 13:26:24.750 I/BaseActivity: Starting SplashScreenActivity
07-06 13:26:24.751 I/BaseActivity: Resuming SplashScreenActivity
07-06 13:26:25.270 I/BaseActivity: Pausing SplashScreenActivity
07-06 13:26:25.281 I/BaseActivity: Creating NavDrawerActivity
07-06 13:26:25.341 I/BaseActivity: Starting NavDrawerActivity
07-06 13:26:25.342 I/BaseActivity: Resuming NavDrawerActivity
07-06 13:26:25.342 I/BriarActivity: Not signed in, launching StartupActivity
07-06 13:26:25.349 I/BaseActivity: Pausing NavDrawerActivity
07-06 13:26:25.356 I/BaseActivity: Creating StartupActivity
07-06 13:26:25.363 I/AccountManagerImpl: Found database key in primary file
07-06 13:26:25.365 I/BaseActivity: Starting StartupActivity
07-06 13:26:25.416 I/BaseActivity: Resuming StartupActivity
07-06 13:26:25.937 I/BaseActivity: Stopping NavDrawerActivity
07-06 13:26:25.948 I/BaseActivity: Stopping SplashScreenActivity
07-06 13:26:25.950 I/BaseActivity: Destroying SplashScreenActivity
07-06 13:26:33.878 I/AccountManagerImpl: Found database key in primary file
07-06 13:26:34.876 I/AndroidKeyStrengthener: Loaded key from keystore
07-06 13:26:34.909 I/BriarService: Created
07-06 13:26:34.947 I/LifecycleManagerImpl: Opening database
07-06 13:26:34.951 I/H2Database: Reopening DB: true
07-06 13:26:35.791 I/IdentityManagerImpl: Identity loaded
07-06 13:26:35.800 I/LifecycleManagerImpl: Starting services
07-06 13:26:35.801 I/CleanupManagerImpl: Scheduling cleanup task in 1000 ms
07-06 13:26:35.804 I/AndroidNetworkManager: Received broadcast android.net.conn.CONNECTIVITY_CHANGE
07-06 13:26:35.804 I/AndroidNetworkManager: Received broadcast android.net.wifi.p2p.THIS_DEVICE_CHANGED
07-06 13:26:35.933 I/PluginManagerImpl: Starting simplex plugins
07-06 13:26:35.933 I/PluginManagerImpl: Starting duplex plugins
07-06 13:26:35.939 I/PluginManagerImpl: org.briarproject.bramble.bluetooth changed from state STARTING_STOPPING to DISABLED
07-06 13:26:35.939 I/PluginViewModel: TransportStateEvent: org.briarproject.bramble.bluetooth is DISABLED
07-06 13:26:35.956 I/AbstractBluetoothPlugin: Local address null
07-06 13:26:35.959 I/BaseActivity: Pausing StartupActivity
07-06 13:26:35.964 I/BriarActivity: Recreating NavDrawerActivity after signing in
07-06 13:26:35.966 I/BaseActivity: Starting NavDrawerActivity
07-06 13:26:35.967 I/BaseActivity: Resuming NavDrawerActivity
```Android 1.4https://code.briarproject.org/briar/briar/-/issues/2107IndexOutOfBoundsException in RecyclerView, probably in ConversationActivity2021-11-04T11:03:26ZakwizgranIndexOutOfBoundsException in RecyclerView, probably in ConversationActivity* Android version: 9
* Phone model: Xiaomi Mi Note 3 (jason)
* Briar version: 1.3.5 (0040753)
Stacktrace:
```
java.lang.IndexOutOfBoundsException: Index: 0, Size: 0
at java.util.ArrayList.get(ArrayList.java:437)
at andro...* Android version: 9
* Phone model: Xiaomi Mi Note 3 (jason)
* Briar version: 1.3.5 (0040753)
Stacktrace:
```
java.lang.IndexOutOfBoundsException: Index: 0, Size: 0
at java.util.ArrayList.get(ArrayList.java:437)
at androidx.recyclerview.widget.StaggeredGridLayoutManager$Span.calculateCachedStart(StaggeredGridLayoutManager.java:2531)
at androidx.recyclerview.widget.StaggeredGridLayoutManager$Span.getStartLine(StaggeredGridLayoutManager.java:2548)
at androidx.recyclerview.widget.StaggeredGridLayoutManager.checkSpanForGap(StaggeredGridLayoutManager.java:410)
at androidx.recyclerview.widget.StaggeredGridLayoutManager.hasGapsToFix(StaggeredGridLayoutManager.java:359)
at androidx.recyclerview.widget.StaggeredGridLayoutManager.checkForGaps(StaggeredGridLayoutManager.java:282)
at androidx.recyclerview.widget.StaggeredGridLayoutManager.onScrollStateChanged(StaggeredGridLayoutManager.java:317)
at androidx.recyclerview.widget.RecyclerView.dispatchOnScrollStateChanged(RecyclerView.java:5197)
at androidx.recyclerview.widget.RecyclerView.setScrollState(RecyclerView.java:1550)
at androidx.recyclerview.widget.RecyclerView.cancelScroll(RecyclerView.java:3444)
at androidx.recyclerview.widget.RecyclerView.onTouchEvent(RecyclerView.java:3422)
at android.view.View.dispatchTouchEvent(View.java:12527)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3000)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2705)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3002)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2719)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3002)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2719)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3002)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2719)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3032)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2719)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3032)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2719)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3054)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2719)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3032)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2719)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3032)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2719)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3032)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2719)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3032)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2719)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3032)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2719)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3032)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2719)
at com.android.internal.policy.DecorView.superDispatchTouchEvent(DecorView.java:444)
at com.android.internal.policy.PhoneWindow.superDispatchTouchEvent(PhoneWindow.java:1830)
at android.app.Activity.dispatchTouchEvent(Activity.java:3465)
at androidx.appcompat.view.WindowCallbackWrapper.dispatchTouchEvent(WindowCallbackWrapper.java:69)
at androidx.appcompat.view.WindowCallbackWrapper.dispatchTouchEvent(WindowCallbackWrapper.java:69)
at com.android.internal.policy.DecorView.dispatchTouchEvent(DecorView.java:402)
at android.view.View.dispatchPointerEvent(View.java:12768)
at android.view.ViewRootImpl$ViewPostImeInputStage.processPointerEvent(ViewRootImpl.java:5303)
at android.view.ViewRootImpl$ViewPostImeInputStage.onProcess(ViewRootImpl.java:5103)
at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:4618)
at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:4671)
at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:4637)
at android.view.ViewRootImpl$AsyncInputStage.forward(ViewRootImpl.java:4777)
at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:4645)
at android.view.ViewRootImpl$AsyncInputStage.apply(ViewRootImpl.java:4834)
at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:4618)
at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:4671)
at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:4637)
at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:4645)
at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:4618)
at android.view.ViewRootImpl.deliverInputEvent(ViewRootImpl.java:7346)
at android.view.ViewRootImpl.doProcessInputEvents(ViewRootImpl.java:7315)
at android.view.ViewRootImpl.enqueueInputEvent(ViewRootImpl.java:7276)
at android.view.ViewRootImpl$WindowInputEventReceiver.onInputEvent(ViewRootImpl.java:7452)
at android.view.InputEventReceiver.dispatchInputEvent(InputEventReceiver.java:250)
at android.view.InputEventReceiver.nativeConsumeBatchedInputEvents(Native Method)
at android.view.InputEventReceiver.consumeBatchedInputEvents(InputEventReceiver.java:212)
at android.view.ViewRootImpl.doConsumeBatchedInput(ViewRootImpl.java:7420)
at android.view.ViewRootImpl$ConsumeBatchedInputRunnable.run(ViewRootImpl.java:7475)
at android.view.Choreographer$CallbackRecord.run(Choreographer.java:1089)
at android.view.Choreographer.doCallbacks(Choreographer.java:885)
at android.view.Choreographer.doFrame(Choreographer.java:810)
at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:1075)
at android.os.Handler.handleCallback(Handler.java:873)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:201)
at android.app.ActivityThread.main(ActivityThread.java:6821)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:547)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:873)
```
Last lines of log:
```
07-03 07:25:33.246 I/AutoDeleteManagerImpl: Sending message with auto-delete timer 604800000
07-03 07:25:33.316 I/DuplexOutgoingSession: Generated offer: true
07-03 07:25:33.316 I/DuplexOutgoingSession: Sent offer
07-03 07:25:33.323 I/DuplexOutgoingSession: Generated offer: false
07-03 07:25:33.880 I/DuplexOutgoingSession: Generated batch: true
07-03 07:25:33.880 I/ConversationActivity: Messages sent
07-03 07:25:33.880 I/DuplexOutgoingSession: Sent batch
07-03 07:25:33.886 I/DuplexOutgoingSession: Generated batch: false
07-03 07:25:33.993 I/ConversationActivity: Messages acked
```Android 1.4https://code.briarproject.org/briar/briar/-/issues/2106Allow deleting of profile picture2021-07-12T11:31:19ZBen ArmsteadAllow deleting of profile pictureOnce a profile picture is selected, there is no way to delete it, it can only be replaced.
I propose there be a way to remove the profile picture, which when executed, reverts the profile picture to the random pixels image which is disp...Once a profile picture is selected, there is no way to delete it, it can only be replaced.
I propose there be a way to remove the profile picture, which when executed, reverts the profile picture to the random pixels image which is displayed before the user initially selects an image.
Thanks for all your great work on briar.
Apologies if there is a way to do it which I am not aware of or if it is in the works.https://code.briarproject.org/briar/briar/-/issues/2098IllegalStateException when creating ConversationActivity2021-11-04T11:03:25ZakwizgranIllegalStateException when creating ConversationActivity* Android version: 9
* Phone model: Xiaomi Redmi Note 8T (willow_eea)
* Briar version: 1.2.20 (62cca13)
Stacktrace:
```
Unable to start activity ComponentInfo{org.briarproject.briar.android/org.briarproject.briar.android.conversation.Co...* Android version: 9
* Phone model: Xiaomi Redmi Note 8T (willow_eea)
* Briar version: 1.2.20 (62cca13)
Stacktrace:
```
Unable to start activity ComponentInfo{org.briarproject.briar.android/org.briarproject.briar.android.conversation.ConversationActivity}: java.lang.IllegalStateException
java.lang.RuntimeException: Unable to start activity ComponentInfo{org.briarproject.briar.android/org.briarproject.briar.android.conversation.ConversationActivity}: java.lang.IllegalStateException
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2984)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3119)
at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:78)
at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:108)
at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:68)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1839)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loop(Looper.java:201)
at android.app.ActivityThread.main(ActivityThread.java:6864)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:547)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:873)
Caused by: java.lang.IllegalStateException
at org.briarproject.briar.android.conversation.ConversationActivity.onCreate(ConversationActivity.java:222)
at android.app.Activity.performCreate(Activity.java:7232)
at android.app.Activity.performCreate(Activity.java:7221)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1272)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2964)
... 11 more
```
Log:
```
06-05 14:42:25.705 I/BriarApplicationImpl: Created
06-05 14:42:25.757 I/BaseActivity: Creating ConversationActivity
```
It looks like the app is being relaunched after being killed, in some way that creates ConversationActivity first (recent apps list or message notification?) and the contact ID is missing from the intent.Android 1.4https://code.briarproject.org/briar/briar/-/issues/2097ActivityNotFoundException for OPEN_DOCUMENT intent2022-02-28T15:52:29ZakwizgranActivityNotFoundException for OPEN_DOCUMENT intent* Android version: 11
* Phone model: Pixel 4a (sunfish)
* Briar version: 1.3.5 (0040753)
* User feedback: "I tried to press the button to change profile picture."
Stacktrace:
```
No Activity found to handle Intent { act=android.intent.a...* Android version: 11
* Phone model: Pixel 4a (sunfish)
* Briar version: 1.3.5 (0040753)
* User feedback: "I tried to press the button to change profile picture."
Stacktrace:
```
No Activity found to handle Intent { act=android.intent.action.OPEN_DOCUMENT cat=[android.intent.category.OPENABLE] typ=image/* (has extras) }
android.content.ActivityNotFoundException: No Activity found to handle Intent { act=android.intent.action.OPEN_DOCUMENT cat=[android.intent.category.OPENABLE] typ=image
/* (has extras) }
at android.app.Instrumentation.checkStartActivityResult(Instrumentation.java:2067)
at android.app.Instrumentation.execStartActivity(Instrumentation.java:1727)
at android.app.Activity.startActivityForResult(Activity.java:5314)
at androidx.activity.ComponentActivity.startActivityForResult(ComponentActivity.java:574)
at androidx.core.app.ActivityCompat.startActivityForResult(ActivityCompat.java:234)
at androidx.activity.ComponentActivity$2.onLaunch(ComponentActivity.java:208)
at androidx.activity.result.ActivityResultRegistry$3.launch(ActivityResultRegistry.java:224)
at androidx.activity.result.ActivityResultLauncher.launch(ActivityResultLauncher.java:47)
at androidx.fragment.app.FragmentManager.launchStartActivityForResult(FragmentManager.java:3000)
at androidx.fragment.app.Fragment.startActivityForResult(Fragment.java:1424)
at androidx.fragment.app.Fragment.startActivityForResult(Fragment.java:1398)
at org.briarproject.briar.android.settings.SettingsFragment.lambda$onCreatePreferences$0(SettingsFragment.java:64)
at org.briarproject.briar.android.settings.SettingsFragment.lambda$onCreatePreferences$0$SettingsFragment(Unknown Source:0)
at org.briarproject.briar.android.settings.-$$Lambda$SettingsFragment$aLVt4dIN9PUOagzsIXcpqTymkBo.onPreferenceClick(Unknown Source:2)
at androidx.preference.Preference.performClick(Preference.java:1184)
at androidx.preference.Preference.performClick(Preference.java:1166)
at androidx.preference.Preference$1.onClick(Preference.java:181)
at android.view.View.performClick(View.java:7448)
at android.view.View.performClickInternal(View.java:7425)
at android.view.View.access$3600(View.java:810)
at android.view.View$PerformClick.run(View.java:28305)
at android.os.Handler.handleCallback(Handler.java:938)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:223)
at android.app.ActivityThread.main(ActivityThread.java:7664)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:592)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:947)
```Android 1.4Torsten GroteTorsten Grotehttps://code.briarproject.org/briar/briar/-/issues/2088Sharing Briar offline - Crash when wifi on device is OFF and 'Start sharing' ...2021-12-07T15:20:36ZIvanaSharing Briar offline - Crash when wifi on device is OFF and 'Start sharing' tapped on Briar screenSteps to reproduce:
1. Device: Samsung Mini I9195 (API19) - go to device settings and switch the wi-fi OFF
2. Go to Briar app > settings > Share Briar app offline
3. Tap Start Sharing button
Expected results:
1. As the wifi gets switc...Steps to reproduce:
1. Device: Samsung Mini I9195 (API19) - go to device settings and switch the wi-fi OFF
2. Go to Briar app > settings > Share Briar app offline
3. Tap Start Sharing button
Expected results:
1. As the wifi gets switched ON during this process, the expected would be for the briar app sharing to continue as normal
Actual results:
1. Briar app crashes. (Reproduced 3 times in a row)
Attached screenshot of device settings, movie of user actions on Briar and Android Studio logfile for the device during this process.
![device-2021-06-23-133045](/uploads/03642e88edf23c9f00e13969cc8e08d3/device-2021-06-23-133045.mp4)[crash_samsung_mini_23062021.txt](/uploads/f4e4ca1973fc75867ea1b65b7a533d5a/crash_samsung_mini_23062021.txt)![device-2021-06-23-133011](/uploads/05ff2fdb19bc1d0bcb052c1c4e3fc51b/device-2021-06-23-133011.png)
Crash report sent from the device as well.
Checking what happens in the same scenario for devices:
- Pixel 2 (API30) - user is given a message that the wifi needs to be on and then they are taken to the device settings to enable the wi-fi = OK
- Nokia 3.1 (API29) - as Pixel2 = OK
- Samsung A01 Core (API29) - as Pixel 2 = OK
- HTC One M9 (API24)Android 1.4SebastianSebastianhttps://code.briarproject.org/briar/briar/-/issues/2067Add version/build info to settings dialog2022-07-11T15:13:46ZNorbert 80Add version/build info to settings dialogI cannot find a version string somewhere in the Briar app. I suggest to add build info at the bottom of the settings screen.I cannot find a version string somewhere in the Briar app. I suggest to add build info at the bottom of the settings screen.Android 1.4https://code.briarproject.org/briar/briar/-/issues/2066Error: NoSuchGroupException2021-06-07T16:08:35ZNorbert 80Error: NoSuchGroupExceptionOn Briar 1.3.4 Android I ALWAYS get an "Error: NoSuchGroupException" when deleting groups.
(Additional info: I just created test groups with no other participants. I don't know at the moment if this error only happens in this particular...On Briar 1.3.4 Android I ALWAYS get an "Error: NoSuchGroupException" when deleting groups.
(Additional info: I just created test groups with no other participants. I don't know at the moment if this error only happens in this particular case.)
Another issue:https://code.briarproject.org/briar/briar/-/issues/2064Image quality is very low when sending and receiving images.2022-07-08T11:19:20ZAman AroraImage quality is very low when sending and receiving images.Trying sending hd images but it's size getting compressed to few kbs only from mbs.
Event not able to read text from images. Please fix thisTrying sending hd images but it's size getting compressed to few kbs only from mbs.
Event not able to read text from images. Please fix thisMulti-block messageshttps://code.briarproject.org/briar/briar/-/issues/2062Show connectivity status in ongoing notification2021-06-02T18:43:53ZakwizgranShow connectivity status in ongoing notificationA user asked for the app's connectivity status to be included in the ongoing notification so it can be checked easily.A user asked for the app's connectivity status to be included in the ongoing notification so it can be checked easily.https://code.briarproject.org/briar/briar/-/issues/2061inform user if connection does not work because time is out of synch2021-08-27T11:41:52Zsysterinform user if connection does not work because time is out of synchIf the time is out of sync with the time of a contact, one cannot connect with them over bluetooth (haven't checked it with wifi/internet)
There is no further information in the app, why the connection fails and so it difficult for a u...If the time is out of sync with the time of a contact, one cannot connect with them over bluetooth (haven't checked it with wifi/internet)
There is no further information in the app, why the connection fails and so it difficult for a user to detect and correct the issue.
Time out of sync might happen often through the following:
- battery empty
- battery unplugged
- user has a spare phone that they haven't used since long and they just start it to test briar
If connection does not work because time is out of sync, the user should receive an inapp information.Transfer content securely via SD cards and USB memory sticksIvanaIvana2021-07-31https://code.briarproject.org/briar/briar/-/issues/2059NoSuchGroupException toast is shown when private group is removed2021-06-14T14:58:58ZakwizgranNoSuchGroupException toast is shown when private group is removed* Android version: 4.4.2
* Phone model: LGE LG-D150 (w35_global_com)
* Briar version: 1.3.4 (76b7e6f)
* User feedback: "NoSuchGroupException"
Log:
```
05-23 22:32:59.452 I/GroupListViewModel: Private group removed
05-23 22:32:59.453 I/T...* Android version: 4.4.2
* Phone model: LGE LG-D150 (w35_global_com)
* Briar version: 1.3.4 (76b7e6f)
* User feedback: "NoSuchGroupException"
Log:
```
05-23 22:32:59.452 I/GroupListViewModel: Private group removed
05-23 22:32:59.453 I/ThreadListViewModel: Group removed
05-23 22:32:59.456 I/BaseActivity: Pausing GroupActivity
05-23 22:32:59.467 I/BaseActivity: Starting NavDrawerActivity
05-23 22:32:59.467 I/BaseActivity: Resuming NavDrawerActivity
05-23 22:32:59.950 I/BaseActivity: Stopping GroupActivity
05-23 22:32:59.954 I/BaseActivity: Destroying GroupActivity
05-23 22:32:59.967 W/DbViewModel: org.briarproject.bramble.api.db.NoSuchGroupException
org.briarproject.bramble.api.db.NoSuchGroupException
at org.briarproject.bramble.db.DatabaseComponentImpl.mergeGroupMetadata(DatabaseComponentImpl.java:784)
at org.briarproject.bramble.client.ClientHelperImpl.mergeGroupMetadata(ClientHelperImpl.java:224)
at org.briarproject.bramble.client.ClientHelperImpl.lambda$mergeGroupMetadata$7(ClientHelperImpl.java:218)
at org.briarproject.bramble.client.ClientHelperImpl.lambda$mergeGroupMetadata$7$ClientHelperImpl(ClientHelperImpl.java)
at org.briarproject.bramble.client.-$$Lambda$ClientHelperImpl$7us-EF4vPLR_8c0LCNvGmtb6d4I.run(lambda)
at org.briarproject.bramble.db.DatabaseComponentImpl.transaction(DatabaseComponentImpl.java:200)
at org.briarproject.bramble.client.ClientHelperImpl.mergeGroupMetadata(ClientHelperImpl.java:218)
at org.briarproject.briar.client.MessageTrackerImpl.storeMessageId(MessageTrackerImpl.java:92)
at org.briarproject.briar.android.threaded.ThreadListViewModel.lambda$storeMessageId$1(ThreadListViewModel.java:222)
at org.briarproject.briar.android.threaded.ThreadListViewModel.lambda$storeMessageId$1$ThreadListViewModel(ThreadListViewModel.java)
at org.briarproject.briar.android.threaded.-$$Lambda$ThreadListViewModel$8pSkGFRn7z9NtDqesywkHNLVqgk.run(lambda)
at org.briarproject.briar.android.viewmodel.DbViewModel.lambda$runOnDbThread$0(DbViewModel.java:77)
at org.briarproject.briar.android.viewmodel.DbViewModel.lambda$runOnDbThread$0$DbViewModel(DbViewModel.java)
at org.briarproject.briar.android.viewmodel.-$$Lambda$DbViewModel$WFnJ2C0vmjF_vFVS_futFODEXKA.run(lambda)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
```
What seems to be happening is that ThreadListViewModel is asynchronously storing the list position, and it gets a NoSuchGroupException because the group has recently been removed. The exception is harmless and should probably be logged rather than shown in the UI.Android 1.3Torsten GroteTorsten Grotehttps://code.briarproject.org/briar/briar/-/issues/2058Disabled settings are difficult to read2021-06-08T12:56:08ZakwizgranDisabled settings are difficult to read* Briar version: 1.3.4
* User feedback: "The greyed out options in the settings are a bit to difficult to read (for me).
A bit more contrast could still signal it's greyed out, but offer better readability."* Briar version: 1.3.4
* User feedback: "The greyed out options in the settings are a bit to difficult to read (for me).
A bit more contrast could still signal it's greyed out, but offer better readability."https://code.briarproject.org/briar/briar/-/issues/2057AssertionError when selecting image to send2023-09-14T12:55:21ZakwizgranAssertionError when selecting image to send* Android version: 9
* Phone model: Honor KIW-L24 (lineage_kiwi)
* Briar version: 1.3.3 (c647c52)
Log snippet:
```
05-26 19:25:27.225 I/BaseActivity: Pausing NavDrawerActivity
05-26 19:25:27.302 I/BaseActivity: Creating ConversationActi...* Android version: 9
* Phone model: Honor KIW-L24 (lineage_kiwi)
* Briar version: 1.3.3 (c647c52)
Log snippet:
```
05-26 19:25:27.225 I/BaseActivity: Pausing NavDrawerActivity
05-26 19:25:27.302 I/BaseActivity: Creating ConversationActivity
05-26 19:25:27.389 I/ConversationViewModel: PrivateMessageFormat loaded: TEXT_IMAGES_AUTO_DELETE
05-26 19:25:27.536 I/BaseActivity: Starting ConversationActivity
05-26 19:25:27.540 I/BaseActivity: Resuming ConversationActivity
05-26 19:25:27.737 I/ConversationActivity: Eagerly loading text for latest message
05-26 19:25:27.850 I/BaseActivity: Pausing ConversationActivity
05-26 19:25:27.992 I/BaseActivity: Creating ConversationActivity
05-26 19:25:28.024 I/ConversationViewModel: PrivateMessageFormat loaded: TEXT_IMAGES_AUTO_DELETE
05-26 19:25:28.157 I/BaseActivity: Starting ConversationActivity
05-26 19:25:28.163 I/BaseActivity: Resuming ConversationActivity
05-26 19:25:28.816 I/ConversationActivity: Eagerly loading text for latest message
05-26 19:25:28.819 I/BaseActivity: Stopping ConversationActivity
05-26 19:25:28.831 I/BaseActivity: Destroying ConversationActivity
05-26 19:25:30.983 I/BaseActivity: Pausing ConversationActivity
05-26 19:25:31.214 I/BaseActivity: Stopping NavDrawerActivity
05-26 19:25:31.698 I/BaseActivity: Stopping ConversationActivity
```
Stacktrace:
```
java.lang.AssertionError
at org.briarproject.briar.android.view.TextAttachmentController.onImageReceived(TextAttachmentController.java:166)
at org.briarproject.briar.android.conversation.ConversationActivity.onActivityResult(ConversationActivity.java:319)
at android.app.Activity.dispatchActivityResult(Activity.java:7462)
at android.app.ActivityThread.deliverResults(ActivityThread.java:4391)
at android.app.ActivityThread.handleSendResult(ActivityThread.java:4440)
at android.app.servertransaction.ActivityResultItem.execute(ActivityResultItem.java:49)
at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:108)
at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:68)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1816)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loop(Looper.java:193)
at android.app.ActivityThread.main(ActivityThread.java:6718)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:491)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:858)
```Android 1.4https://code.briarproject.org/briar/briar/-/issues/2056IllegalArgumentException: pointerIndex out of range2021-08-27T11:46:15ZakwizgranIllegalArgumentException: pointerIndex out of range* Android version: 11
* Phone model: Redmi Note 5
* Briar version: 1.3.4 (76b7e6f)
* User feedback: "Sent a picture, then click on it to show it."
Log snippet:
```
05-28 06:43:28.401 I/BaseActivity: Pausing ConversationActivity
05-28 06...* Android version: 11
* Phone model: Redmi Note 5
* Briar version: 1.3.4 (76b7e6f)
* User feedback: "Sent a picture, then click on it to show it."
Log snippet:
```
05-28 06:43:28.401 I/BaseActivity: Pausing ConversationActivity
05-28 06:43:28.416 I/BaseActivity: Creating ImageActivity
05-28 06:43:28.441 I/BaseActivity: Starting ImageActivity
05-28 06:43:28.444 I/BaseActivity: Resuming ImageActivity
05-28 06:43:28.894 I/BaseActivity: Stopping ConversationActivity
```
Stacktrace:
```
java.lang.IllegalArgumentException: pointerIndex out of range
at android.view.MotionEvent.nativeGetAxisValue(Native Method)
at android.view.MotionEvent.getX(MotionEvent.java:2401)
at androidx.viewpager.widget.ViewPager.onInterceptTouchEvent(ViewPager.java:2072)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2664)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3118)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2799)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3118)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2799)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3118)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2799)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3118)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2799)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3118)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2799)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3118)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2799)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3118)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2799)
at com.android.internal.policy.DecorView.superDispatchTouchEvent(DecorView.java:488)
at com.android.internal.policy.PhoneWindow.superDispatchTouchEvent(PhoneWindow.java:1873)
at android.app.Activity.dispatchTouchEvent(Activity.java:4125)
at androidx.appcompat.view.WindowCallbackWrapper.dispatchTouchEvent(WindowCallbackWrapper.java:69)
at androidx.appcompat.view.WindowCallbackWrapper.dispatchTouchEvent(WindowCallbackWrapper.java:69)
at com.android.internal.policy.DecorView.dispatchTouchEvent(DecorView.java:446)
at android.view.View.dispatchPointerEvent(View.java:14568)
at android.view.ViewRootImpl$ViewPostImeInputStage.processPointerEvent(ViewRootImpl.java:6022)
at android.view.ViewRootImpl$ViewPostImeInputStage.onProcess(ViewRootImpl.java:5825)
at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:5316)
at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:5373)
at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:5339)
at android.view.ViewRootImpl$AsyncInputStage.forward(ViewRootImpl.java:5491)
at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:5347)
at android.view.ViewRootImpl$AsyncInputStage.apply(ViewRootImpl.java:5548)
at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:5320)
at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:5373)
at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:5339)
at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:5347)
at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:5320)
at android.view.ViewRootImpl.deliverInputEvent(ViewRootImpl.java:8086)
at android.view.ViewRootImpl.doProcessInputEvents(ViewRootImpl.java:8037)
at android.view.ViewRootImpl.enqueueInputEvent(ViewRootImpl.java:7998)
at android.view.ViewRootImpl$WindowInputEventReceiver.onInputEvent(ViewRootImpl.java:8209)
at android.view.InputEventReceiver.dispatchInputEvent(InputEventReceiver.java:220)
at android.os.MessageQueue.nativePollOnce(Native Method)
at android.os.MessageQueue.next(MessageQueue.java:335)
at android.os.Looper.loop(Looper.java:183)
at android.app.ActivityThread.main(ActivityThread.java:7660)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:592)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:947)
```
[Looks like](https://stackoverflow.com/a/13000343) this is a [very longstanding bug](https://issuetracker.google.com/issues/36931456) in the support library/AndroidX that was fixed recently. We may be able to fix the issue by upgrading the ViewPager library. Alternatively, various people on StackOverflow suggest workarounds that wrap the ViewPager to catch the exception.Android 1.3IvanaIvana