briar issueshttps://code.briarproject.org/briar/briar/-/issues2021-11-04T11:03:43Zhttps://code.briarproject.org/briar/briar/-/issues/1398IndexOutOfBoundsException in contact list2021-11-04T11:03:43ZakwizgranIndexOutOfBoundsException in contact list* Android version: 7.0
* Briar version: 1.1.1 (9476782)
* Phone model: AGM A8 (T88Q_14)
* User feedback: "Spontaneously crashes by itself. The impact of any third-party applications is not noticed. I cannot name any apparent reasons."
S...* Android version: 7.0
* Briar version: 1.1.1 (9476782)
* Phone model: AGM A8 (T88Q_14)
* User feedback: "Spontaneously crashes by itself. The impact of any third-party applications is not noticed. I cannot name any apparent reasons."
Stacktrace:
```
java.lang.IndexOutOfBoundsException: Inconsistency detected. Invalid view holder adapter positionViewHolder{91bdea4 position=3 id=-1, old Pos=3, pLpos:-1 scrap [attachedScrap] tmpDetached no parent} android.support.v7.widget.RecyclerView{63190e8 VFED.V... .F....I. 0,0-720,1120 #7f09012d app:id/recyclerView}, adapter:org.briarproject.briar.android.contact.ContactListAdapter@cb5480b, layout:android.support.v7.widget.LinearLayoutManager@8a536e8, context:org.briarproject.briar.android.navdrawer.NavDrawerActivity@679576e
at android.support.v7.widget.RecyclerView$Recycler.validateViewHolderForOffsetPosition(RecyclerView.java:5610)
at android.support.v7.widget.RecyclerView$Recycler.tryGetViewHolderForPositionByDeadline(RecyclerView.java:5792)
at android.support.v7.widget.RecyclerView$Recycler.getViewForPosition(RecyclerView.java:5752)
at android.support.v7.widget.RecyclerView$Recycler.getViewForPosition(RecyclerView.java:5748)
at android.support.v7.widget.LinearLayoutManager$LayoutState.next(LinearLayoutManager.java:2232)
at android.support.v7.widget.LinearLayoutManager.layoutChunk(LinearLayoutManager.java:1559)
at android.support.v7.widget.LinearLayoutManager.fill(LinearLayoutManager.java:1519)
at android.support.v7.widget.LinearLayoutManager.onLayoutChildren(LinearLayoutManager.java:614)
at android.support.v7.widget.RecyclerView.dispatchLayoutStep1(RecyclerView.java:3763)
at android.support.v7.widget.RecyclerView.dispatchLayout(RecyclerView.java:3527)
at android.support.v7.widget.RecyclerView.onLayout(RecyclerView.java:4082)
at android.view.View.layout(View.java:17523)
at android.view.ViewGroup.layout(ViewGroup.java:5612)
at android.support.constraint.ConstraintLayout.onLayout(ConstraintLayout.java:1855)
at android.view.View.layout(View.java:17523)
at android.view.ViewGroup.layout(ViewGroup.java:5612)
at android.widget.FrameLayout.layoutChildren(FrameLayout.java:323)
at android.widget.FrameLayout.onLayout(FrameLayout.java:261)
at android.view.View.layout(View.java:17523)
at android.view.ViewGroup.layout(ViewGroup.java:5612)
at android.widget.FrameLayout.layoutChildren(FrameLayout.java:323)
at android.widget.FrameLayout.onLayout(FrameLayout.java:261)
at android.view.View.layout(View.java:17523)
at android.view.ViewGroup.layout(ViewGroup.java:5612)
at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1741)
at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1585)
at android.widget.LinearLayout.onLayout(LinearLayout.java:1494)
at android.view.View.layout(View.java:17523)
at android.view.ViewGroup.layout(ViewGroup.java:5612)
at android.support.v4.widget.DrawerLayout.onLayout(DrawerLayout.java:1171)
at android.view.View.layout(View.java:17523)
at android.view.ViewGroup.layout(ViewGroup.java:5612)
at android.widget.FrameLayout.layoutChildren(FrameLayout.java:323)
at android.widget.FrameLayout.onLayout(FrameLayout.java:261)
at android.view.View.layout(View.java:17523)
at android.view.ViewGroup.layout(ViewGroup.java:5612)
at android.widget.FrameLayout.layoutChildren(FrameLayout.java:323)
at android.widget.FrameLayout.onLayout(FrameLayout.java:261)
at android.view.View.layout(View.java:17523)
at android.view.ViewGroup.layout(ViewGroup.java:5612)
at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1741)
at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1585)
at android.widget.LinearLayout.onLayout(LinearLayout.java:1494)
at android.widget.FrameLayout.layoutChildren(FrameLayout.java:323)
at android.widget.FrameLayout.onLayout(FrameLayout.java:261)
at android.view.View.layout(View.java:17523)
at android.view.ViewGroup.layout(ViewGroup.java:5612)
at android.widget.FrameLayout.layoutChildren(FrameLayout.java:323)
at android.widget.FrameLayout.onLayout(FrameLayout.java:261)
at android.view.View.layout(View.java:17523)
at android.view.ViewGroup.layout(ViewGroup.java:5612)
at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1741)
at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1585)
at android.widget.LinearLayout.onLayout(LinearLayout.java:1494)
at android.view.View.layout(View.java:17523)
at android.view.ViewGroup.layout(ViewGroup.java:5612)
at android.widget.FrameLayout.layoutChildren(FrameLayout.java:323)
at android.widget.FrameLayout.onLayout(FrameLayout.java:261)
at android.view.View.layout(View.java:17523)
at android.view.ViewGroup.layout(ViewGroup.java:5612)
at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1741)
at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1585)
at android.widget.LinearLayout.onLayout(LinearLayout.java:1494)
at android.view.View.layout(View.java:17523)
at android.view.ViewGroup.layout(ViewGroup.java:5612)
at android.widget.FrameLayout.layoutChildren(FrameLayout.java:323)
at android.widget.FrameLayout.onLayout(FrameLayout.java:261)
at com.android.internal.policy.DecorView.onLayout(DecorView.java:724)
at android.view.View.layout(View.java:17523)
at android.view.ViewGroup.layout(ViewGroup.java:5612)
at android.view.ViewRootImpl.performLayout(ViewRootImpl.java:2342)
at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:2069)
at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1246)
at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:6307)
at android.view.Choreographer$CallbackRecord.run(Choreographer.java:871)
at android.view.Choreographer.doCallbacks(Choreographer.java:683)
at android.view.Choreographer.doFrame(Choreographer.java:619)
at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:857)
at android.os.Handler.handleCallback(Handler.java:751)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:154)
at android.app.ActivityThread.main(ActivityThread.java:6086)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:865)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:755)
```Android 1.4https://code.briarproject.org/briar/briar/-/issues/1396AssertionError due to SetupActivity being created when signing out2022-05-26T15:47:12ZakwizgranAssertionError due to SetupActivity being created when signing out* Android version: 4.3
* Briar version: 1.1.1 (9476782)
* Phone Model: Galaxy Nexus (yakju)
Stacktrace:
```
java.lang.AssertionError
at org.briarproject.briar.android.login.SetupActivity.onCreate(SetupActivity.java:46)
a...* Android version: 4.3
* Briar version: 1.1.1 (9476782)
* Phone Model: Galaxy Nexus (yakju)
Stacktrace:
```
java.lang.AssertionError
at org.briarproject.briar.android.login.SetupActivity.onCreate(SetupActivity.java:46)
at android.app.Activity.performCreate(Activity.java:5133)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2175)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2261)
at android.app.ActivityThread.access$600(ActivityThread.java:141)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1256)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:137)
at android.app.ActivityThread.main(ActivityThread.java:5103)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:525)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:737)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
at dalvik.system.NativeStart.main(Native Method)
```
Log snippet:
```
9-17 18:28:50.420 I/RenewableWakeLock: Renewing wake lock LocationManagerService
09-17 18:29:14.080 I/BriarService: Trim memory: running low
09-17 18:29:15.360 I/BriarService: Trim memory: running low
09-17 18:29:21.323 I/BriarService: Trim memory: running low
09-17 18:29:50.424 I/RenewableWakeLock: Renewing wake lock LocationManagerService
09-17 18:30:01.283 I/BriarService: Trim memory: running low
09-17 18:30:50.429 I/RenewableWakeLock: Renewing wake lock LocationManagerService
09-17 18:31:50.433 I/RenewableWakeLock: Renewing wake lock LocationManagerService
09-17 18:32:45.038 I/Poller: Polling plugin org.briarproject.bramble.tor
09-17 18:32:45.050 I/ConnectionRegistryImpl: 0 contacts connected: org.briarproject.bramble.tor
09-17 18:32:45.051 I/TorPlugin: Connecting to dif[scrubbed]
09-17 18:32:45.663 I/TorPlugin: Could not connect to dif[scrubbed]: java.io.IOException: Connection failed: Host unreachable
09-17 18:32:45.665 I/TorPlugin: NOTICE Closing stream for '[scrubbed].onion': hidden service is unavailable (try again later).
09-17 18:32:50.438 I/RenewableWakeLock: Renewing wake lock LocationManagerService
09-17 18:33:23.524 I/Poller: Polling plugin org.briarproject.bramble.lan
09-17 18:33:23.537 I/ConnectionRegistryImpl: 0 contacts connected: org.briarproject.bramble.lan
09-17 18:33:23.537 I/TcpPlugin: Connecting to /192.168.0.6
09-17 18:33:25.868 I/TcpPlugin: Could not connect to /192.168.0.6
09-17 18:33:50.443 I/RenewableWakeLock: Renewing wake lock LocationManagerService
09-17 18:34:50.448 I/RenewableWakeLock: Renewing wake lock LocationManagerService
09-17 18:35:50.453 I/RenewableWakeLock: Renewing wake lock LocationManagerService
09-17 18:36:50.458 I/RenewableWakeLock: Renewing wake lock LocationManagerService
09-17 18:37:50.462 I/RenewableWakeLock: Renewing wake lock LocationManagerService
09-17 18:38:50.466 I/RenewableWakeLock: Renewing wake lock LocationManagerService
09-17 18:38:54.012 I/AndroidNetworkManager: Received broadcast android.intent.action.SCREEN_ON
09-17 18:38:54.014 I/TorPlugin: Online: true, wifi: true
09-17 18:38:54.014 I/TorPlugin: Country code: GB
09-17 18:38:54.014 I/TorPlugin: Enabling network, not using bridges
09-17 18:38:54.015 I/AndroidLanTcpPlugin: Connected to wifi
09-17 18:38:54.018 I/BriarService: Trim memory: running low
09-17 18:38:54.064 I/RenewableWakeLock: Acquiring wake lock LocationManagerService
09-17 18:38:54.064 I/RenewableWakeLock: Already acquired
09-17 18:38:56.832 I/BriarRecyclerView: Adding Handler Callback
09-17 18:39:00.314 I/BriarRecyclerView: Adding Handler Callback
09-17 18:39:00.899 I/BriarRecyclerView: Removing Handler Callback
09-17 18:39:02.579 I/BriarControllerImpl: Shutting down service
09-17 18:39:02.657 I/BriarService: Destroyed
09-17 18:39:02.659 I/LifecycleManagerImpl: Stopping services
09-17 18:39:02.660 I/PluginManagerImpl: Stopping simplex plugins
09-17 18:39:02.660 I/PluginManagerImpl: Stopping duplex plugins
09-17 18:39:02.660 I/PluginManagerImpl: Trying to stop plugin org.briarproject.bramble.tor
09-17 18:39:02.661 I/PluginManagerImpl: Trying to stop plugin org.briarproject.bramble.bluetooth
09-17 18:39:02.661 I/NavDrawerControllerImpl: TransportDisabledEvent: org.briarproject.bramble.tor
09-17 18:39:02.661 I/NavDrawerControllerImpl: TransportDisabledEvent: org.briarproject.bramble.bluetooth
09-17 18:39:02.661 I/TorPlugin: Stopping Tor
09-17 18:39:02.662 I/TorPlugin: java.net.SocketException: Socket closed
09-17 18:39:02.666 I/PluginManagerImpl: Trying to stop plugin org.briarproject.bramble.lan
09-17 18:39:02.666 I/TcpPlugin: java.net.SocketException: Socket closed
09-17 18:39:02.666 I/NavDrawerControllerImpl: TransportDisabledEvent: org.briarproject.bramble.lan
09-17 18:39:02.666 I/PluginManagerImpl: Waiting for all the plugins to stop
09-17 18:39:02.698 I/AndroidAccountManager: No database key in preferences
09-17 18:39:02.700 I/AccountManagerImpl: Found database key in primary file
09-17 18:39:02.707 I/RenewableWakeLock: Releasing wake lock LocationManagerService
09-17 18:39:02.709 I/TorPlugin: NOTICE Closing no-longer-configured Socks listener on 127.0.0.1:59050
09-17 18:39:02.709 I/TorPlugin: NOTICE DisableNetwork is set. Tor will not make or accept non-control network connections. Shutting down all existing connections.
09-17 18:39:02.709 I/TorPlugin: NOTICE Closing old Socks listener on 127.0.0.1:59050
09-17 18:39:02.720 I/TorPlugin: OR connection CLOSED $D7D905184504739AA790FFF32DF882CD5D34CF69~bauruine55
```
The crash happened when signing out after leaving Briar running in the foreground for a long time. Shutdown seems to be proceeding normally before the crash. The log shows several trim memory calls, but not at a severe enough level to hide the UI.
May be related to #1189.https://code.briarproject.org/briar/briar/-/issues/1395IllegalStateException when hiding UI due to low memory2018-10-08T12:03:31ZakwizgranIllegalStateException when hiding UI due to low memory* Android version: 8.1.0
* Briar version: 1.1.1 (9476782)
* Phone model: Xiaomi Mi A1 (tissot)
Stacktrace:
```
java.lang.RuntimeException: Unable to stop activity {org.briarproject.briar.android/org.briarproject.briar.android.logout.Hid...* Android version: 8.1.0
* Briar version: 1.1.1 (9476782)
* Phone model: Xiaomi Mi A1 (tissot)
Stacktrace:
```
java.lang.RuntimeException: Unable to stop activity {org.briarproject.briar.android/org.briarproject.briar.android.logout.HideUiActivity}: java.lang.IllegalStateException: You need to use a Theme.AppCompat theme (or descendant) with this activity.
at android.app.ActivityThread.performDestroyActivity(ActivityThread.java:4369)
at android.app.ActivityThread.handleDestroyActivity(ActivityThread.java:4425)
at android.app.ActivityThread.-wrap5(Unknown Source:0)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1661)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loop(Looper.java:172)
at android.app.ActivityThread.main(ActivityThread.java:6590)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:438)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:807)
Caused by: java.lang.IllegalStateException: You need to use a Theme.AppCompat theme (or descendant) with this activity.
at android.support.v7.app.AppCompatDelegateImplV9.createSubDecor(AppCompatDelegateImplV9.java:354)
at android.support.v7.app.AppCompatDelegateImplV9.ensureSubDecor(AppCompatDelegateImplV9.java:323)
at android.support.v7.app.AppCompatDelegateImplV9.initWindowDecorActionBar(AppCompatDelegateImplV9.java:175)
at android.support.v7.app.AppCompatDelegateImplBase.getSupportActionBar(AppCompatDelegateImplBase.java:145)
at android.support.v7.app.AppCompatDelegateImplV9.onStop(AppCompatDelegateImplV9.java:259)
at android.support.v7.app.AppCompatDelegateImplV14.onStop(AppCompatDelegateImplV14.java:131)
at android.support.v7.app.AppCompatActivity.onStop(AppCompatActivity.java:184)
at org.briarproject.briar.android.activity.BaseActivity.onStop(BaseActivity.java:128)
at android.app.Instrumentation.callActivityOnStop(Instrumentation.java:1376)
at android.app.Activity.performStop(Activity.java:7205)
at android.app.ActivityThread.performDestroyActivity(ActivityThread.java:4364)
... 9 more
java.lang.IllegalStateException: You need to use a Theme.AppCompat theme (or descendant) with this activity.
at android.support.v7.app.AppCompatDelegateImplV9.createSubDecor(AppCompatDelegateImplV9.java:354)
at android.support.v7.app.AppCompatDelegateImplV9.ensureSubDecor(AppCompatDelegateImplV9.java:323)
at android.support.v7.app.AppCompatDelegateImplV9.initWindowDecorActionBar(AppCompatDelegateImplV9.java:175)
at android.support.v7.app.AppCompatDelegateImplBase.getSupportActionBar(AppCompatDelegateImplBase.java:145)
at android.support.v7.app.AppCompatDelegateImplV9.onStop(AppCompatDelegateImplV9.java:259)
at android.support.v7.app.AppCompatDelegateImplV14.onStop(AppCompatDelegateImplV14.java:131)
at android.support.v7.app.AppCompatActivity.onStop(AppCompatActivity.java:184)
at org.briarproject.briar.android.activity.BaseActivity.onStop(BaseActivity.java:128)
at android.app.Instrumentation.callActivityOnStop(Instrumentation.java:1376)
at android.app.Activity.performStop(Activity.java:7205)
at android.app.ActivityThread.performDestroyActivity(ActivityThread.java:4364)
at android.app.ActivityThread.handleDestroyActivity(ActivityThread.java:4425)
at android.app.ActivityThread.-wrap5(Unknown Source:0)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1661)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loop(Looper.java:172)
at android.app.ActivityThread.main(ActivityThread.java:6590)
at java.lang.reflect.Method.invoke(Native Method)
at android.app.ActivityThread.-wrap5(Unknown Source:0)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1661)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loop(Looper.java:172)
at android.app.ActivityThread.main(ActivityThread.java:6590)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:438)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:807)
Caused by: java.lang.IllegalStateException: You need to use a Theme.AppCompat theme (or descendant) with this activity.
at android.support.v7.app.AppCompatDelegateImplV9.createSubDecor(AppCompatDelegateImplV9.java:354)
at android.support.v7.app.AppCompatDelegateImplV9.ensureSubDecor(AppCompatDelegateImplV9.java:323)
at android.support.v7.app.AppCompatDelegateImplV9.initWindowDecorActionBar(AppCompatDelegateImplV9.java:175)
at android.support.v7.app.AppCompatDelegateImplBase.getSupportActionBar(AppCompatDelegateImplBase.java:145)
at android.support.v7.app.AppCompatDelegateImplV9.onStop(AppCompatDelegateImplV9.java:259)
at android.support.v7.app.AppCompatDelegateImplV14.onStop(AppCompatDelegateImplV14.java:131)
at android.support.v7.app.AppCompatActivity.onStop(AppCompatActivity.java:184)
at org.briarproject.briar.android.activity.BaseActivity.onStop(BaseActivity.java:128)
at android.app.Instrumentation.callActivityOnStop(Instrumentation.java:1376)
at android.app.Activity.performStop(Activity.java:7205)
at android.app.ActivityThread.performDestroyActivity(ActivityThread.java:4364)
... 9 more
java.lang.IllegalStateException: You need to use a Theme.AppCompat theme (or descendant) with this activity.
at android.support.v7.app.AppCompatDelegateImplV9.createSubDecor(AppCompatDelegateImplV9.java:354)
at android.support.v7.app.AppCompatDelegateImplV9.ensureSubDecor(AppCompatDelegateImplV9.java:323)
at android.support.v7.app.AppCompatDelegateImplV9.initWindowDecorActionBar(AppCompatDelegateImplV9.java:175)
at android.support.v7.app.AppCompatDelegateImplBase.getSupportActionBar(AppCompatDelegateImplBase.java:145)
at android.support.v7.app.AppCompatDelegateImplV9.onStop(AppCompatDelegateImplV9.java:259)
at android.support.v7.app.AppCompatDelegateImplV14.onStop(AppCompatDelegateImplV14.java:131)
at android.support.v7.app.AppCompatActivity.onStop(AppCompatActivity.java:184)
at org.briarproject.briar.android.activity.BaseActivity.onStop(BaseActivity.java:128)
at android.app.Instrumentation.callActivityOnStop(Instrumentation.java:1376)
at android.app.Activity.performStop(Activity.java:7205)
at android.app.ActivityThread.performDestroyActivity(ActivityThread.java:4364)
at android.app.ActivityThread.handleDestroyActivity(ActivityThread.java:4425)
at android.app.ActivityThread.-wrap5(Unknown Source:0)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1661)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loop(Looper.java:172)
at android.app.ActivityThread.main(ActivityThread.java:6590)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:438)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:807)
```Android 1.1Torsten GroteTorsten Grotehttps://code.briarproject.org/briar/briar/-/issues/1393Error page is shown when trying to install Ripple from Google Play2019-06-12T10:45:27ZakwizgranError page is shown when trying to install Ripple from Google PlayWhen no panic button app is installed, touching the "Panic Button App" preference automatically opens a market:// link to install Ripple. If the device has Google Play but not F-Droid, a Play Store error page is shown. This may be confus...When no panic button app is installed, touching the "Panic Button App" preference automatically opens a market:// link to install Ripple. If the device has Google Play but not F-Droid, a Play Store error page is shown. This may be confusing for the user, as we haven't given any indication that we're about to search for an app on Google Play.
If the device has both Google Play and F-Droid, an app chooser is shown. Choosing Google Play leads to the error page.
![device-2018-09-28-110048](/uploads/5eb85f3d601c31b661f9071d70638c20/device-2018-09-28-110048.png)Android 1.1https://code.briarproject.org/briar/briar/-/issues/1388Discussion: Only poll contacts if necessary2021-12-13T14:13:45ZBen WieDiscussion: Only poll contacts if necessaryFor some transports we could reduce the polling effort if we only poll contacts that we want to sent messages/ACKs to. This works for transports where both peers are able to connect to each other if one is able to.For some transports we could reduce the polling effort if we only poll contacts that we want to sent messages/ACKs to. This works for transports where both peers are able to connect to each other if one is able to.https://code.briarproject.org/briar/briar/-/issues/1369Private group layout is confusing2019-05-16T14:54:46ZakwizgranPrivate group layout is confusing"Group chat is extremely confusing with the names of the users below the messages.""Group chat is extremely confusing with the names of the users below the messages."Android 1.1Torsten GroteTorsten Grotehttps://code.briarproject.org/briar/briar/-/issues/1363IllegalArgumentException: Scrapped or attached views may not be recycled2021-11-04T11:03:42ZakwizgranIllegalArgumentException: Scrapped or attached views may not be recycled* Android version: 8.1.0
* Phone model: OnePlus A5000 (OnePlus5)
* Briar version: 1.0.13 (55d8f85)
Stacktrace:
```
java.lang.IllegalArgumentException: Scrapped or attached views may not be recycled. isScrap:false isAttached:true android...* Android version: 8.1.0
* Phone model: OnePlus A5000 (OnePlus5)
* Briar version: 1.0.13 (55d8f85)
Stacktrace:
```
java.lang.IllegalArgumentException: Scrapped or attached views may not be recycled. isScrap:false isAttached:true android.support.v7.widget.RecyclerView{bb19834 VFED.V... ........ 0,0-1080,1599 #7f09012b app:id/recyclerView}, adapter:org.briarproject.briar.android.contact.ConversationAdapter@40dedd1, layout:android.support.v7.widget.LinearLayoutManager@90a2036, context:org.briarproject.briar.android.contact.ConversationActivity@b8d5bc6
at android.support.v7.widget.RecyclerView$Recycler.recycleViewHolderInternal(RecyclerView.java:6053)
at android.support.v7.widget.RecyclerView$Recycler.recycleView(RecyclerView.java:5997)
at android.support.v7.widget.GapWorker.prefetchPositionWithDeadline(GapWorker.java:292)
at android.support.v7.widget.GapWorker.flushTaskWithDeadline(GapWorker.java:342)
at android.support.v7.widget.GapWorker.flushTasksWithDeadline(GapWorker.java:358)
at android.support.v7.widget.GapWorker.prefetch(GapWorker.java:365)
at android.support.v7.widget.GapWorker.run(GapWorker.java:396)
at android.os.Handler.handleCallback(Handler.java:790)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:164)
at android.app.ActivityThread.main(ActivityThread.java:6753)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:482)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:807)
```
Log:
```
08-08 21:39:57.411 I/ConnectionRegistryImpl: Outgoing connection registered: org.briarproject.bramble.tor
08-08 21:39:57.412 I/ConnectionRegistryImpl: Contact connected
08-08 21:39:57.412 I/ConversationActivity: Contact connected
08-08 21:39:57.615 I/Poller: Polling plugin org.briarproject.bramble.tor
08-08 21:39:57.621 I/ConnectionRegistryImpl: 1 contacts connected: org.briarproject.bramble.tor
08-08 21:39:57.621 I/TorPlugin: Connecting to ojd[scrubbed]
08-08 21:40:03.376 I/BriarRecyclerView: Adding Handler Callback
08-08 21:40:03.376 I/AndroidDatabaseConfig: Database key has been set: true
```
The last two log lines suggest an activity had just started. The previous log lines show that ConversationActivity was recently active, and that's reported as the context of the crash in the stacktrace. So the crash may have occurred while navigating away from ConversationActivity.Android 1.4https://code.briarproject.org/briar/briar/-/issues/1361Long blog post scrolls to top while reading2020-11-17T16:07:38ZakwizgranLong blog post scrolls to top while reading* Android version: 7.1.2
* Briar version: 1.0.11
* User feedback: "When reading RSS posts on the blogs page, often as I'm scrolling down through a long article the screen jumps back up and displays sections of the article I've already re...* Android version: 7.1.2
* Briar version: 1.0.11
* User feedback: "When reading RSS posts on the blogs page, often as I'm scrolling down through a long article the screen jumps back up and displays sections of the article I've already read. Not a critical issue, but it makes it hard to read long articles in the app since it causes me to lose my place every few paragraphs."
Since the article is long enough to scroll through, I'm assuming this refers to the single post ("read more") view.https://code.briarproject.org/briar/briar/-/issues/1356Error: No dependency for integrity assertion 'org.ow2.asm:asm:5.0.4:asm-5.0.4...2019-08-14T14:23:01ZTeodomiroError: No dependency for integrity assertion 'org.ow2.asm:asm:5.0.4:asm-5.0.4.jar:...Hi guys.
I get this dependency error when I try to build the project...! Any thoughts, please? [PerBri](/uploads/9ee4f4c20810d3128f233a6f1b4b759d/PerBri.png)Hi guys.
I get this dependency error when I try to build the project...! Any thoughts, please? [PerBri](/uploads/9ee4f4c20810d3128f233a6f1b4b759d/PerBri.png)https://code.briarproject.org/briar/briar/-/issues/1348Briar does not care if bluetooth is used by other apps2020-11-16T10:36:46ZmicressorBriar does not care if bluetooth is used by other appsI have
* [X] searched for open and closed issues
----
**Steps to reproduce:**
1. Listen to music via bluetooth
2. Select logoff on Briar
**Current behavior:**
Briar switches off the Bluetooth on the device.
**Expected behavior:**
Br...I have
* [X] searched for open and closed issues
----
**Steps to reproduce:**
1. Listen to music via bluetooth
2. Select logoff on Briar
**Current behavior:**
Briar switches off the Bluetooth on the device.
**Expected behavior:**
Briar should not shutdown bluetooth, if it is used by other apps.Android 1.2akwizgranakwizgranhttps://code.briarproject.org/briar/briar/-/issues/1346Add LaTeX support for messages.2020-11-16T15:38:15ZIdRather NotAdd LaTeX support for messages.Just as the title says, LaTeX support(or something like it) for Mathematical and Chemical formulas and equations would be a really nice thing to have and a feature that would be a reason for academic people (at least those in science cou...Just as the title says, LaTeX support(or something like it) for Mathematical and Chemical formulas and equations would be a really nice thing to have and a feature that would be a reason for academic people (at least those in science courses) to switch to Briar or use it to discuss assignments/research.https://code.briarproject.org/briar/briar/-/issues/1337Scroll to bottom when writing new post in private group2020-11-18T01:46:13ZakwizgranScroll to bottom when writing new post in private groupUser feedback: "In private conversations, when you tap the text bar to begin typing and it expands, the message history lifts up as well so that you are still seeing the most recent message above what you are typing. In groups, that is n...User feedback: "In private conversations, when you tap the text bar to begin typing and it expands, the message history lifts up as well so that you are still seeing the most recent message above what you are typing. In groups, that is not the case. When the typing bar expands, it covers the most recent messages and you have to scroll down to see them. I find the behavior in the private conversations more convenient."https://code.briarproject.org/briar/briar/-/issues/1336NPE in ShowQrCodeFragment2018-07-25T13:33:31ZakwizgranNPE in ShowQrCodeFragment* Android version: 8.0.0
* Phone model: Samsung SM-N950U (greatqltesq)
* Briar version: 1.0.9 (841c31e)
* User feedback: "Couldn't add contact."
Stacktrace:
```
java.lang.NullPointerException: Attempt to invoke virtual method 'android.v...* Android version: 8.0.0
* Phone model: Samsung SM-N950U (greatqltesq)
* Briar version: 1.0.9 (841c31e)
* User feedback: "Couldn't add contact."
Stacktrace:
```
java.lang.NullPointerException: Attempt to invoke virtual method 'android.view.WindowManager android.app.Activity.getWindowManager()' on a null object reference
at org.briarproject.briar.android.keyagreement.ShowQrCodeFragment.getScreenRotationDegrees(ShowQrCodeFragment.java:189)
at org.briarproject.briar.android.keyagreement.ShowQrCodeFragment.reset(ShowQrCodeFragment.java:247)
at org.briarproject.briar.android.keyagreement.ShowQrCodeFragment.lambda$keyAgreementFailed$5$ShowQrCodeFragment(ShowQrCodeFragment.java:351)
at org.briarproject.briar.android.keyagreement.ShowQrCodeFragment$$Lambda$5.run(Unknown Source:2)
at org.briarproject.briar.android.fragment.BaseFragment.lambda$runOnUiThreadUnlessDestroyed$0$BaseFragment(BaseFragment.java:89)
at org.briarproject.briar.android.fragment.BaseFragment$$Lambda$0.run(Unknown Source:6)
at android.os.Handler.handleCallback(Handler.java:789)
at android.os.Handler.dispatchMessage(Handler.java:98)
at android.os.Looper.loop(Looper.java:164)
at android.app.ActivityThread.main(ActivityThread.java:6940)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:327)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1374)
```Android 1.1Torsten GroteTorsten Grotehttps://code.briarproject.org/briar/briar/-/issues/1335Delete account without signing out2023-07-11T10:11:01ZakwizgranDelete account without signing outA user asked for the ability to delete their account in an emergency without signing out and using the "forgot password" button.A user asked for the ability to delete their account in an emergency without signing out and using the "forgot password" button.https://code.briarproject.org/briar/briar/-/issues/1330Can't click "got it" during password setup2019-02-28T19:44:25ZShannon StorkCan't click "got it" during password setupWhen a tester set up a password and clicked the (i) on the top right, he couldn't click "got it" and had to tap out of the box. Device: Samsung s8+ (Android 8.x)When a tester set up a password and clicked the (i) on the top right, he couldn't click "got it" and had to tap out of the box. Device: Samsung s8+ (Android 8.x)https://code.briarproject.org/briar/briar/-/issues/1316Use of string "Make introduction" in two contexts should be avoided2018-06-18T14:20:41ZsBsUse of string "Make introduction" in two contexts should be avoidedThe string "Make introduction" (https://code.briarproject.org/akwizgran/briar/blob/master/briar-android/src/main/res/values/strings.xml#L150) is used in two distinct contexts:
1. In file https://code.briarproject.org/akwizgran/briar/bl...The string "Make introduction" (https://code.briarproject.org/akwizgran/briar/blob/master/briar-android/src/main/res/values/strings.xml#L150) is used in two distinct contexts:
1. In file https://code.briarproject.org/akwizgran/briar/blob/master/briar-android/src/main/res/layout/introduction_message.xml:
app:buttonText="@string/introduction_button"
In this case, the string is used as the label of a button. The user just defined two contacts to be presented. The app shows clearly which two contacts are going to be introduced. The button referred is used to finally trigger the introduction process. Thus, it has an imperative and final meaning: "do introduce each other the contacts shown in the image". The user has followed all the introduction process to arrive here. Then, it can be assumed that it's clear what he is going to do.
1. In file https://code.briarproject.org/akwizgran/briar/blob/master/briar-android/src/main/res/menu/conversation_actions.xml:
android:title="@string/introduction_button"
In this case, the string is an entry of the vertical dots menu bound to a contact conversation screen. The meaning is more in the sense of "introduce him [the current contact] to another contact". The user is beginning the process of presentation. A more explicit description would be more intuitive.
In catalan l10n both cases would be better differentiated. In the first case, a plain imperative sentence (Presenta'ls) would be optimal. In the second case, it would be more interesting a description of the action (Presenta aquest contacte a un altre, Presenta'l a un altre contacte). However, being a single string this translation scheme cannot be applied.
I suggest to use distinct strings to cases 1 and 2.
PS: spanish translator added a comment in the same senseAndroid 1.1akwizgranakwizgranhttps://code.briarproject.org/briar/briar/-/issues/1315Wifi icon is sometimes green when not connected to wifi2020-11-17T18:29:53ZakwizgranWifi icon is sometimes green when not connected to wifi* Android version: 7.1.2
* Phone model: Samsung GT-I9195 (lineage_serranoltexx)
* Briar version: 1.0.8 (a44a68f)
* User feedback: "Sometimes (also while writing this) the Wifi icon is green even when Wifi is turned off."
The log doesn't...* Android version: 7.1.2
* Phone model: Samsung GT-I9195 (lineage_serranoltexx)
* Briar version: 1.0.8 (a44a68f)
* User feedback: "Sometimes (also while writing this) the Wifi icon is green even when Wifi is turned off."
The log doesn't show any sign of connectivity changes, so this may be a UI issue.https://code.briarproject.org/briar/briar/-/issues/1314Missing or repeated flags in emoji chooser2018-09-03T12:12:48ZakwizgranMissing or repeated flags in emoji chooser* Android version: 6.0.1
* Briar version: 1.0.1
* User feedback: "In icon section, some flags are missing and most of them are repeated several times."* Android version: 6.0.1
* Briar version: 1.0.1
* User feedback: "In icon section, some flags are missing and most of them are repeated several times."Android 1.1akwizgranakwizgranhttps://code.briarproject.org/briar/briar/-/issues/1313Tor fails to start if previous Tor instance is still running2023-03-15T12:55:10ZakwizgranTor fails to start if previous Tor instance is still runningI ran into this issue a couple of times while debugging #1293, and now I've seen it in a user feedback log (also affected by #1293, as far as I can tell).
```
05-25 14:25:08.926 I/TorPlugin: May 25 16:25:08.926 [notice] Tor 0.2.9.14 (gi...I ran into this issue a couple of times while debugging #1293, and now I've seen it in a user feedback log (also affected by #1293, as far as I can tell).
```
05-25 14:25:08.926 I/TorPlugin: May 25 16:25:08.926 [notice] Tor 0.2.9.14 (git-73e1a45b461ab669) running on Linux with Libevent 2.0.22-stable, OpenSSL 1.0.2n and Zlib 1.2.8.
05-25 14:25:08.939 I/TorPlugin: May 25 16:25:08.927 [notice] Tor can't help you if you use it wrong! Learn how to be safe at https://www.torproject.org/download/download#warning
05-25 14:25:08.939 I/TorPlugin: May 25 16:25:08.927 [notice] Read configuration file "/data/data/org.briarproject.briar.android/app_tor/torrc".
05-25 14:25:08.939 I/TorPlugin: May 25 16:25:08.935 [notice] Opening Control listener on 127.0.0.1:59051
05-25 14:25:08.939 I/TorPlugin: May 25 16:25:08.935 [warn] Could not bind to 127.0.0.1:59051: Address already in use. Is Tor already running?
05-25 14:25:08.940 I/TorPlugin: May 25 16:25:08.935 [warn] Failed to parse/validate config: Failed to bind one of the listener ports.
05-25 14:25:08.940 I/TorPlugin: May 25 16:25:08.935 [err] Reading config failed--see warnings above.
05-25 14:25:08.940 W/TorPlugin: Tor exited with value 1
```
The problem occurs because the previous Tor instance is still using the control port. This is unlikely to happen if Tor starts and stops normally, because the shutdown command takes effect very quickly. But if Briar fails to open the control connection (e.g. due to #1293 or similar bugs), Tor won't exit until a short time after Briar exits, during which time Briar may have been relaunched. I think this could also happen if Briar crashes and is immediately relaunched.https://code.briarproject.org/briar/briar/-/issues/1311Secure Scuttlebutt plugin2020-11-17T18:26:34ZakwizgranSecure Scuttlebutt pluginA user asked for the ability to use Secure Scuttlebutt as a transport.A user asked for the ability to use Secure Scuttlebutt as a transport.