briar issueshttps://code.briarproject.org/briar/briar/-/issues2021-11-04T11:03:26Zhttps://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/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/1977SecurityException due to missing ACCESS_WIFI_STATE permission2021-11-04T11:03:25ZakwizgranSecurityException due to missing ACCESS_WIFI_STATE permission* Android version: 9
* Phone model: Samsung SM-A207F (a20sxx)
* Briar version: 1.2.13 (5fdc7e7)
Stacktrace:
```
WifiService: Neither user 10177 nor current process has android.permission.ACCESS_WIFI_STATE.
java.lang.SecurityException: W...* Android version: 9
* Phone model: Samsung SM-A207F (a20sxx)
* Briar version: 1.2.13 (5fdc7e7)
Stacktrace:
```
WifiService: Neither user 10177 nor current process has android.permission.ACCESS_WIFI_STATE.
java.lang.SecurityException: WifiService: Neither user 10177 nor current process has android.permission.ACCESS_WIFI_STATE.
at android.os.Parcel.createException(Parcel.java:1966)
at android.os.Parcel.readException(Parcel.java:1934)
at android.os.Parcel.readException(Parcel.java:1884)
at android.net.wifi.IWifiManager$Stub$Proxy.getConnectionInfo(IWifiManager.java:1928)
at android.net.wifi.WifiManager.getConnectionInfo(WifiManager.java:2099)
at org.briarproject.bramble.plugin.tcp.AndroidLanTcpPlugin.getWifiIpv4Address(AndroidLanTcpPlugin.java:129)
at org.briarproject.bramble.plugin.tcp.AndroidLanTcpPlugin.getPreferredWifiAddress(AndroidLanTcpPlugin.java:298)
at org.briarproject.bramble.plugin.tcp.AndroidLanTcpPlugin.lambda$updateConnectionStatus$0(AndroidLanTcpPlugin.java:260)
at org.briarproject.bramble.plugin.tcp.AndroidLanTcpPlugin.lambda$updateConnectionStatus$0$AndroidLanTcpPlugin(Unknown Source:0)
at org.briarproject.bramble.plugin.tcp.-$$Lambda$AndroidLanTcpPlugin$RnrvoJsXGo91N3aS5KUNVN0J3hU.run(Unknown Source:2)
at org.briarproject.bramble.PoliteExecutor.lambda$execute$0(PoliteExecutor.java:57)
at org.briarproject.bramble.PoliteExecutor.lambda$execute$0$PoliteExecutor(Unknown Source:0)
at org.briarproject.bramble.-$$Lambda$PoliteExecutor$wSvuPL6t_HUoaaqCVexrhJX_RSg.run(Unknown Source:6)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
at java.lang.Thread.run(Thread.java:764)
Caused by: android.os.RemoteException: Remote stack trace:
at android.app.ContextImpl.enforce(ContextImpl.java:1924)
at android.app.ContextImpl.enforceCallingOrSelfPermission(ContextImpl.java:1952)
at com.android.server.wifi.WifiServiceImpl.enforceAccessPermission(WifiServiceImpl.java:1697)
at com.android.server.wifi.WifiServiceImpl.getConnectionInfo(WifiServiceImpl.java:3776)
at android.net.wifi.IWifiManager$Stub.onTransact(IWifiManager.java:341)
```
Log not available due to #1917.
This is a strange one. Briar requests ACCESS_WIFI_STATE in the manifest and it should be granted automatically at install time.
Perhaps the device is in multi-user mode and only one user can hold this permission at once? Or perhaps the device has a permission management app that allows this permission to be revoked?Android 1.4https://code.briarproject.org/briar/briar/-/issues/1900Crash when scanning QR code2021-11-04T11:03:25ZakwizgranCrash when scanning QR code* Android version: 4.2.2
* Phone model: ThL W200S
* Briar version: 1.2.9
Stacktrace:
```
java.lang.RuntimeException: An error occured while executing doInBackground()
at android.os.AsyncTask$3.done(AsyncTask.java:299)
at...* Android version: 4.2.2
* Phone model: ThL W200S
* Briar version: 1.2.9
Stacktrace:
```
java.lang.RuntimeException: An error occured while executing doInBackground()
at android.os.AsyncTask$3.done(AsyncTask.java:299)
at java.util.concurrent.FutureTask.finishCompletion(FutureTask.java:352)
at java.util.concurrent.FutureTask.setException(FutureTask.java:219)
at java.util.concurrent.FutureTask.run(FutureTask.java:239)
at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:230)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1080)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:573)
at java.lang.Thread.run(Thread.java:838)
Caused by: com.google.zxing.NotFoundException
com.google.zxing.NotFoundException
```
Edited log:
```
08-20 18:28:48.357 I/CameraView: Best size 960x540
08-20 18:28:48.380 I/CameraView: Video stabilisation enabled: true
08-20 18:28:48.380 I/CameraView: Scene mode: auto
08-20 18:28:48.380 I/CameraView: Focus mode: continuous-picture
08-20 18:28:48.380 I/CameraView: Flash mode: off
08-20 18:28:48.380 I/CameraView: Preview size: 960x540
08-20 18:28:48.398 I/ConnectionChooserImpl: Got connection for org.briarproject.bramble.lan
08-20 18:28:48.398 I/ConnectionChooserImpl: Already stopped
08-20 18:28:48.408 I/KeyAgreementConnector: Starting BQP listeners
08-20 18:28:48.408 I/BluetoothPlugin: Key agreement UUID f4ef05da-bb49-32d7-91d7-025efce30d3f
08-20 18:28:48.420 I/KeyAgreementConnector: Listening via org.briarproject.bramble.bluetooth
08-20 18:28:48.425 I/ConnectionChooserImpl: Got connection for org.briarproject.bramble.bluetooth
08-20 18:28:48.425 I/ConnectionChooserImpl: Already stopped
08-20 18:28:48.452 I/RenewableWakeLock: Releasing wake lock org.briarproject.briar.android
08-20 18:28:48.454 I/BluetoothConnectionLimiterImpl: Connection closed, 0 open
08-20 18:28:48.471 I/CameraView: Surface created
08-20 18:28:48.471 I/CameraView: Surface changed: 720x1118
08-20 18:28:48.479 I/CameraView: Best size 960x540
08-20 18:28:48.482 I/KeyAgreementConnector: Listening via org.briarproject.bramble.lan
08-20 18:28:48.489 I/CameraView: Video stabilisation enabled: true
08-20 18:28:48.489 I/CameraView: Scene mode: auto
08-20 18:28:48.489 I/CameraView: Focus mode: continuous-picture
08-20 18:28:48.489 I/CameraView: Flash mode: off
08-20 18:28:48.489 I/CameraView: Preview size: 960x540
08-20 18:28:48.489 I/CameraView: Starting preview
08-20 18:28:48.786 I/BluetoothConnectionLimiterImpl: Key agreement ended
08-20 18:28:48.790 I/CameraView: Stopping preview
08-20 18:28:48.790 I/KeyAgreementConnector: Stopping BQP listeners
08-20 18:28:48.792 I/ConnectionChooserImpl: java.io.IOException: read failed, socket might closed or timeout, read ret: -1
08-20 18:28:48.792 I/ConnectionChooserImpl: java.net.SocketException: Socket closed
08-20 18:28:48.793 I/ConnectionChooserImpl: Closing 0 unused connections
08-20 18:28:48.921 I/CameraView: Releasing camera
08-20 18:28:49.236 I/BluetoothConnectionLimiterImpl: Key agreement started
08-20 18:28:49.236 I/BluetoothConnectionLimiterImpl: Key agreement ended
08-20 18:28:49.651 I/CameraView: Surface destroyed
08-20 18:28:49.677 W/BriarService: Trim memory: running critically low
08-20 18:28:53.718 I/CameraView: Setting preview consumer
08-20 18:28:53.719 I/CameraView: Opening camera
08-20 18:28:53.720 I/CameraView: Using back-facing camera
08-20 18:28:53.883 I/CameraView: Screen rotation 0 degrees, camera orientation 90 degrees
08-20 18:28:53.890 I/CameraView: Scene modes: [auto, portrait, landscape, night, night-portrait, theatre, beach, snow, sunset, steadyphoto, fireworks, sports, party, candlelight, hdr]
08-20 18:28:53.890 I/CameraView: Focus modes: [auto, macro, infinity, continuous-picture, continuous-video, manual, fullscan]
08-20 18:28:53.909 I/CameraView: Video stabilisation enabled: true
08-20 18:28:53.909 I/CameraView: Scene mode: auto
08-20 18:28:53.909 I/CameraView: Focus mode: continuous-picture
08-20 18:28:53.909 I/CameraView: Flash mode: off
08-20 18:28:53.909 I/CameraView: Preview size: 640x480
08-20 18:28:53.914 I/KeyAgreementConnector: Stopping BQP listeners
08-20 18:28:53.914 I/ConnectionChooserImpl: Closing 0 unused connections
08-20 18:28:53.914 I/KeyAgreementConnector: Starting BQP listeners
08-20 18:28:53.915 I/BluetoothPlugin: Key agreement UUID 5a6c42f2-82d3-3e9a-bdaa-8c685cc96898
08-20 18:28:53.931 I/KeyAgreementConnector: Listening via org.briarproject.bramble.bluetooth
08-20 18:28:53.962 I/KeyAgreementConnector: Listening via org.briarproject.bramble.lan
08-20 18:28:53.968 I/BluetoothConnectionLimiterImpl: Key agreement ended
08-20 18:28:53.975 I/CameraView: Surface created
08-20 18:28:53.975 I/CameraView: Surface changed: 720x1118
08-20 18:28:53.979 I/CameraView: Best size 960x540
08-20 18:28:53.988 I/CameraView: Video stabilisation enabled: true
08-20 18:28:53.988 I/CameraView: Scene mode: auto
08-20 18:28:53.988 I/CameraView: Focus mode: continuous-picture
08-20 18:28:53.988 I/CameraView: Flash mode: off
08-20 18:28:53.988 I/CameraView: Preview size: 960x540
08-20 18:28:53.988 I/CameraView: Starting preview
08-20 18:28:54.251 I/BluetoothConnectionLimiterImpl: Key agreement started
08-20 18:28:54.251 I/KeyAgreementFragment: Local payload is 48 bytes
08-20 18:28:55.411 I/RenewableWakeLock: Renewing wake lock org.briarproject.briar.android
```Android 1.4https://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/1903IllegalArgumentException when opening forum2021-11-04T11:03:23ZakwizgranIllegalArgumentException when opening forum* Android version: 9
* Phone model: OnePlus ONE A2003 (lineage_oneplus2)
* Briar version: 1.2.7 (eb562f8)
Stacktrace:
```
java.lang.IllegalArgumentException
at android.os.Parcel.createException(Parcel.java:1954)
at andro...* Android version: 9
* Phone model: OnePlus ONE A2003 (lineage_oneplus2)
* Briar version: 1.2.7 (eb562f8)
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.app.IActivityManager$Stub$Proxy.startActivity(IActivityManager.java:3756)
at android.app.Instrumentation.execStartActivity(Instrumentation.java:1669)
at android.app.Activity.startActivityForResult(Activity.java:4587)
at androidx.fragment.app.FragmentActivity.startActivityForResult(FragmentActivity.java:676)
at android.app.Activity.startActivityForResult(Activity.java:4545)
at androidx.fragment.app.FragmentActivity.startActivityForResult(FragmentActivity.java:663)
at android.app.Activity.startActivity(Activity.java:4906)
at android.app.Activity.startActivity(Activity.java:4874)
at org.briarproject.briar.android.forum.ForumListAdapter.lambda$onBindViewHolder$0$ForumListAdapter(ForumListAdapter.java:77)
at org.briarproject.briar.android.forum.-$$Lambda$ForumListAdapter$kAL6Ao0lW0KDG5V1g1qgxdCGy3I.onClick(Unknown Source:4)
at android.view.View.performClick(View.java:6597)
at android.view.View.performClickInternal(View.java:6574)
at android.view.View.access$3100(View.java:778)
at android.view.View$PerformClick.run(View.java:25906)
at android.os.Handler.handleCallback(Handler.java:873)
at android.os.Handler.dispatchMessage(Handler.java:99)
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)
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:
```
05-12 17:27:04.042 I/BaseActivity: Starting ForumActivity
05-12 17:27:04.091 I/ThreadListControllerImpl: Loaded last top visible message id MessageId(BF612DC59E492610586538167B84439EF006DC1023B5657A39A8C209E7547F5D)
05-12 17:27:05.922 I/ThreadScrollListener: Updating unread count: top=0 bottom=0
05-12 17:27:05.932 I/ThreadScrollListener: Updating unread count: top=0 bottom=0
05-12 17:27:06.895 I/BaseActivity: Starting NavDrawerActivity
05-12 17:27:07.458 I/BaseActivity: Stopping ForumActivity
05-12 17:27:30.902 I/BasePostFragment: Adding Handler Callback
05-12 17:27:30.903 I/BaseControllerImpl: Loaded header from cache
05-12 17:27:30.903 I/BaseControllerImpl: Loaded text from cache
05-12 17:28:03.454 I/BasePostFragment: Removing Handler Callback
05-12 17:28:12.397 I/BasePostFragment: Adding Handler Callback
05-12 17:28:12.397 I/BaseControllerImpl: Loaded header from cache
05-12 17:28:12.397 I/BaseControllerImpl: Loaded text from cache
05-12 17:28:13.457 I/BasePostFragment: Removing Handler Callback
05-12 17:28:23.866 I/BaseActivity: Stopping NavDrawerActivity
05-12 17:28:51.251 I/BaseActivity: Starting NavDrawerActivity
```
The crash happens when calling startActivity() to open ForumActivity. The extras are the group ID and forum name.
Note: on current master this call has moved to ForumViewHolder.Android 1.4https://code.briarproject.org/briar/briar/-/issues/1935ArrayIndexOutOfBoundsException in RecyclerView2021-11-04T11:03:23ZakwizgranArrayIndexOutOfBoundsException in RecyclerView* Android version: 10
* Briar version: 1.2.10 (54b852d)
Stacktrace:
```
java.lang.ArrayIndexOutOfBoundsException: length=5; index=7
at java.util.Arrays$ArrayList.get(Arrays.java:3766)
at androidx.recyclerview.selection.T...* Android version: 10
* Briar version: 1.2.10 (54b852d)
Stacktrace:
```
java.lang.ArrayIndexOutOfBoundsException: length=5; index=7
at java.util.Arrays$ArrayList.get(Arrays.java:3766)
at androidx.recyclerview.selection.ToolHandlerRegistry.get(ToolHandlerRegistry.java:69)
at androidx.recyclerview.selection.EventRouter.onInterceptTouchEvent(EventRouter.java:57)
at androidx.recyclerview.widget.RecyclerView.findInterceptingOnItemTouchListener(RecyclerView.java:3151)
at androidx.recyclerview.widget.RecyclerView.onInterceptTouchEvent(RecyclerView.java:3170)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2620)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3073)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2709)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3073)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2709)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3073)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2709)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3073)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2709)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3073)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2709)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3073)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2709)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3073)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2709)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3073)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2709)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3073)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2709)
at com.android.internal.policy.DecorView.superDispatchTouchEvent(DecorView.java:613)
at com.android.internal.policy.PhoneWindow.superDispatchTouchEvent(PhoneWindow.java:1933)
at android.app.Activity.dispatchTouchEvent(Activity.java:4147)
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:559)
at android.view.View.dispatchPointerEvent(View.java:13766)
at android.view.ViewRootImpl$ViewPostImeInputStage.processPointerEvent(ViewRootImpl.java:5824)
at android.view.ViewRootImpl$ViewPostImeInputStage.onProcess(ViewRootImpl.java:5619)
at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:5063)
at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:5116)
at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:5082)
at android.view.ViewRootImpl$AsyncInputStage.forward(ViewRootImpl.java:5239)
at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:5090)
at android.view.ViewRootImpl$AsyncInputStage.apply(ViewRootImpl.java:5296)
at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:5063)
at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:5116)
at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:5082)
at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:5090)
at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:5063)
at android.view.ViewRootImpl.deliverInputEvent(ViewRootImpl.java:7954)
at android.view.ViewRootImpl.doProcessInputEvents(ViewRootImpl.java:7905)
at android.view.ViewRootImpl.enqueueInputEvent(ViewRootImpl.java:7859)
at android.view.ViewRootImpl$WindowInputEventReceiver.onInputEvent(ViewRootImpl.java:8144)
at android.view.InputEventReceiver.dispatchInputEvent(InputEventReceiver.java:233)
at android.os.MessageQueue.nativePollOnce(Native Method)
at android.os.MessageQueue.next(MessageQueue.java:363)
at android.os.Looper.loop(Looper.java:173)
at android.app.ActivityThread.main(ActivityThread.java:8169)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:513)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1101)
```
Edited log:
```
02-12 21:12:09.963 I/BaseActivity: Starting ConversationActivity
02-12 21:12:09.965 I/BaseActivity: Resuming ConversationActivity
02-12 21:12:10.590 I/AndroidNetworkManager: Received broadcast android.intent.action.SCREEN_ON
```
Crash occurred at 21:12:18.697.
This looks like a RecyclerView bug. Opening a ticket in case we need to upgrade the relevant library.Android 1.4https://code.briarproject.org/briar/briar/-/issues/2210Syncing via removable drives fails when drive is removed too soon2021-11-02T14:07:11ZakwizgranSyncing via removable drives fails when drive is removed too soonA volunteer who was testing syncing via removable drives found that if they removed the removable drive from the sending device too soon, the file was empty (0 bytes) and the import failed with "Error importing data" on the receiving dev...A volunteer who was testing syncing via removable drives found that if they removed the removable drive from the sending device too soon, the file was empty (0 bytes) and the import failed with "Error importing data" on the receiving device.
We already knew this was possible, but I'm opening a ticket for it as it's been seen in the wild.
We may be able to improve how we handle this, for example by showing a more specific error message if the file is empty, or by adding a delay on the sender side before reporting that the write is complete, to allow more time for the data to be written to the drive.https://code.briarproject.org/briar/briar/-/issues/2141Private group crash after re-adding contact2021-10-26T10:41:07ZGhost UserPrivate group crash after re-adding contactHello, recently I was testing private groups in Briar and I encountered a bug.
Both accounts were just created and here are the steps to reproduce the bug:
1. Person A and Person B add each other to contacts.
2. Person A created the grou...Hello, recently I was testing private groups in Briar and I encountered a bug.
Both accounts were just created and here are the steps to reproduce the bug:
1. Person A and Person B add each other to contacts.
2. Person A created the group.
3. Person B joins the group.
4. Person A and Person B remove each other from contacts.
5. Person A and Person B add each other to contacts again.
6. Person A clicks on "share" button in the group.
7. Person A device crashes.
I also sent Briar Crash Report (with description: "issue #2141") with following informations attached:
- Basic information
- Stacktrace
- Build configuration
- App log
I didn't want to include all device informations but these may be useful:
- AndroidApi: 29
- AndroidVersion: 10
- Product: lineage_tissot (LineageOS 17.1 27.07.2021)
If any additional informations are needed then let me know.
EDIT:
I noticed that for some reason Person A still sees that Person B is in the group even after Person B left which in my opinion is some problem with synchronization because Person B had no contacts in the group at the time of leaving.
EDIT 2:
I removed unecessary step because Person B doesn't have to leave the group to reproduce the crash.https://code.briarproject.org/briar/briar/-/issues/2209Unable to delete my own blogs2021-10-26T10:35:55ZJerry WhiteUnable to delete my own blogsI'm unable to delete any blogs i create. The option appears from the menu but is greyed out and unavailable.
I can successfully delete RSS feeds and other people's blogs but not my own. This means if i make a mistake, it's permanent and ...I'm unable to delete any blogs i create. The option appears from the menu but is greyed out and unavailable.
I can successfully delete RSS feeds and other people's blogs but not my own. This means if i make a mistake, it's permanent and the only option is to create a new Briar account.https://code.briarproject.org/briar/briar/-/issues/85Edit or delete forum and blog posts2021-10-26T10:35:44ZakwizgranEdit or delete forum and blog postsUsers asked for the ability to edit or delete forum posts after posting them.
The group discussed the censorship implications and the inability to force every subscriber to edit or delete their copy of the post. It was suggested that a ...Users asked for the ability to edit or delete forum posts after posting them.
The group discussed the censorship implications and the inability to force every subscriber to edit or delete their copy of the post. It was suggested that a request to edit or delete an earlier post could be posted, which would mark the post as edited or deleted in the UI while providing an option to show the original version.https://code.briarproject.org/briar/briar/-/issues/2123Add manual/FAQ entry explaining the relationship revealing2021-10-25T08:28:44ZStoyanAdd manual/FAQ entry explaining the relationship revealingCopying @akwizgran's explanation as summary:
> When a Private Group is created, messages are only synced via the Creator of the group by default. This is done for two reasons: other members of the group may not be contacts, and thus may ...Copying @akwizgran's explanation as summary:
> When a Private Group is created, messages are only synced via the Creator of the group by default. This is done for two reasons: other members of the group may not be contacts, and thus may not be able to sync with each other; or they may be contacts, but may not wish the rest of the group to know that.
If two members of the group carry on a conversation while the creator is offline this reveals that they were syncing the group with each other while the creator was offline, so they must be contacts. Therefore members other than the creator don't sync with each other by default. But if two members want to sync the group between each other and don't mind revealing to the group that they're contacts, they can do this.https://code.briarproject.org/briar/briar/-/issues/1440Expel members from private groups2021-10-21T15:47:37ZakwizgranExpel members from private groupsA user asked for the ability to expel members from private groups.A user asked for the ability to expel members from private groups.https://code.briarproject.org/briar/briar/-/issues/1166Stickers2021-10-13T14:08:14ZakwizgranStickersUser feedback: "I am so used to stickers in Telegram that I really missed them here."User feedback: "I am so used to stickers in Telegram that I really missed them here."https://code.briarproject.org/briar/briar/-/issues/2205Edit profile picture2021-10-13T13:58:45ZIvanaEdit profile pictureOne of the outcomes of the Sponsor 6 user survey that ran in the summer of 2021 is the following user request: "It's like other messenger apps, so don't change anything about it, maybe add an edit section for the picture". Another user g...One of the outcomes of the Sponsor 6 user survey that ran in the summer of 2021 is the following user request: "It's like other messenger apps, so don't change anything about it, maybe add an edit section for the picture". Another user gave this feedback: "Ability to resize and create effects and filters on profile picture."https://code.briarproject.org/briar/briar/-/issues/2204Private group improvements - icon to invite contacts2021-10-13T13:57:15ZIvanaPrivate group improvements - icon to invite contactsOne of the outcomes of the Sponsor 6 user survey ran in the summer of 2021 is the following user request "To add an audience, I habitually went to the dot. As a result, it was a little strange for me to use the 'subscribe' icon to 'invit...One of the outcomes of the Sponsor 6 user survey ran in the summer of 2021 is the following user request "To add an audience, I habitually went to the dot. As a result, it was a little strange for me to use the 'subscribe' icon to 'invite'. The corresponding icon is known as 'subscribe'."https://code.briarproject.org/briar/briar/-/issues/2203Private group improvements - editing the audience2021-10-13T13:55:53ZIvanaPrivate group improvements - editing the audienceOne of the outcomes of the Sponsor6 user survey ran in the summer of 2021 is the following user request "It is difficult to edit your audience as soon as it is formed."One of the outcomes of the Sponsor6 user survey ran in the summer of 2021 is the following user request "It is difficult to edit your audience as soon as it is formed."https://code.briarproject.org/briar/briar/-/issues/2200Add contacts when creating a private group2021-10-13T13:55:39ZIvanaAdd contacts when creating a private groupOne of the outcomes of the Sponsor 6 user survey, which ran in the summer of 2021, is the user's request: "There should be a section to add people at the beginning and when creating the group."
Another user gave the feedback "It is diff...One of the outcomes of the Sponsor 6 user survey, which ran in the summer of 2021, is the user's request: "There should be a section to add people at the beginning and when creating the group."
Another user gave the feedback "It is difficult to edit your audience as soon as [a group] is formed", which may be a request for the same thing.https://code.briarproject.org/briar/briar/-/issues/2202Private group improvements - add a contact from the settings section2021-10-13T13:53:35ZIvanaPrivate group improvements - add a contact from the settings sectionOne of the outcomes of the Sponsor6 user survey ran in the summer of 2021 is the following user request "Adding a friend with the share button is not appropriate for me, one must be added from the settings section"One of the outcomes of the Sponsor6 user survey ran in the summer of 2021 is the following user request "Adding a friend with the share button is not appropriate for me, one must be added from the settings section"https://code.briarproject.org/briar/briar/-/issues/2201Private group improvements - invite users at the bottom of the page and float2021-10-13T13:51:13ZIvanaPrivate group improvements - invite users at the bottom of the page and floatOne of the otucomes of the Sponsor6 user survey ran int he summer of 2021 is this user request: ""Invite members at the bottom of the page and float"One of the otucomes of the Sponsor6 user survey ran int he summer of 2021 is this user request: ""Invite members at the bottom of the page and float"