briar issueshttps://code.briarproject.org/briar/briar/-/issues2022-06-06T16:02:02Zhttps://code.briarproject.org/briar/briar/-/issues/1465Tor takes longer to start since upgrading to 0.3.42022-06-06T16:02:02ZakwizgranTor takes longer to start since upgrading to 0.3.4Tor 0.3.4.8 takes much longer to start than Tor 0.2.9.16 on the same hardware. The time to start the Tor process and create the auth cookie is pretty much unchanged (3 seconds on the Moto G 4G), but the time between logging "Auth cookie ...Tor 0.3.4.8 takes much longer to start than Tor 0.2.9.16 on the same hardware. The time to start the Tor process and create the auth cookie is pretty much unchanged (3 seconds on the Moto G 4G), but the time between logging "Auth cookie created" and logging "Creating hidden service" has increased (from 4 seconds to 19 on the Moto G 4G).
Results for 5 runs with each version:
|Tor version|Mean (seconds)|Standard deviation|
|---|---|---|
|0.2.9.16|3.9|0.3|
|0.3.4.8|19.0|1.8|https://code.briarproject.org/briar/briar/-/issues/1458Sign-in reminder isn't shown when phone starts2020-11-15T19:35:47ZakwizgranSign-in reminder isn't shown when phone startsA user reported that the sign-in reminder isn't show when their phone starts.
While looking into power management I found that many phones restrict which apps can receive the boot completed broadcast. As with other power management rest...A user reported that the sign-in reminder isn't show when their phone starts.
While looking into power management I found that many phones restrict which apps can receive the boot completed broadcast. As with other power management restrictions, there's sometimes an intent for opening the screen where this is managed:
https://stackoverflow.com/questions/48945300/how-to-open-window-of-autostart-application-for-all-devices/48945679#48945679
https://stackoverflow.com/questions/48166206/how-to-start-power-manager-of-all-android-manufactures-to-enable-background-and#
Related to #1260, #1292.https://code.briarproject.org/briar/briar/-/issues/1457IllegalArgumentException when resuming activity2021-11-04T11:03:44ZakwizgranIllegalArgumentException when resuming activity* Android version: 7.0
* Phone model: Motorola Moto G (5) Plus (potter)
* Briar version: 1.1.1 (9476782)
Stacktrace:
```
java.lang.RuntimeException: Unable to resume activity {org.briarproject.briar.android/org.briarproject.briar.androi...* Android version: 7.0
* Phone model: Motorola Moto G (5) Plus (potter)
* Briar version: 1.1.1 (9476782)
Stacktrace:
```
java.lang.RuntimeException: Unable to resume activity {org.briarproject.briar.android/org.briarproject.briar.android.contact.ConversationActivity}: java.lang.IllegalArgumentException
at android.app.ActivityThread.performResumeActivity(ActivityThread.java:3421)
at android.app.ActivityThread.handleResumeActivity(ActivityThread.java:3461)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1523)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:154)
at android.app.ActivityThread.main(ActivityThread.java:6123)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:867)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:757)
Caused by: java.lang.IllegalArgumentException
at android.os.Parcel.readException(Parcel.java:1687)
at android.os.Parcel.readException(Parcel.java:1636)
at android.app.ActivityManagerProxy.isTopOfTask(ActivityManagerNative.java:5569)
at android.app.Activity.isTopOfTask(Activity.java:5969)
at android.app.Activity.onResume(Activity.java:1256)
at android.support.v4.app.FragmentActivity.onResume(FragmentActivity.java:485)
at org.briarproject.briar.android.activity.BriarActivity.onResume(BriarActivity.java:82)
at android.app.Instrumentation.callActivityOnResume(Instrumentation.java:1291)
at android.app.Activity.performResume(Activity.java:6776)
at android.app.ActivityThread.performResumeActivity(ActivityThread.java:3398)
... 8 more
java.lang.IllegalArgumentException
at android.os.Parcel.readException(Parcel.java:1687)
at android.os.Parcel.readException(Parcel.java:1636)
at android.app.ActivityManagerProxy.isTopOfTask(ActivityManagerNative.java:5569)
at android.app.Activity.isTopOfTask(Activity.java:5969)
at android.app.Activity.onResume(Activity.java:1256)
at android.support.v4.app.FragmentActivity.onResume(FragmentActivity.java:485)
at org.briarproject.briar.android.activity.BriarActivity.onResume(BriarActivity.java:82)
at android.app.Instrumentation.callActivityOnResume(Instrumentation.java:1291)
at android.app.Activity.performResume(Activity.java:6776)
at android.app.ActivityThread.performResumeActivity(ActivityThread.java:3398)
at android.app.ActivityThread.handleResumeActivity(ActivityThread.java:3461)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1523)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:154)
at android.app.ActivityThread.main(ActivityThread.java:6123)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:867)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:757)
```Android 1.4https://code.briarproject.org/briar/briar/-/issues/1448Core API for observing group metadata2020-11-15T19:37:03ZakwizgranCore API for observing group metadataSimilarly to #1447, it would be useful if the core allowed an observer to register an interest in a group's metadata and receive an initial snapshot followed by an ordered series of updates. It should be possible to register multiple obs...Similarly to #1447, it would be useful if the core allowed an observer to register an interest in a group's metadata and receive an initial snapshot followed by an ordered series of updates. It should be possible to register multiple observers that are ordered with respect to each other, or alternatively a single observer that specifies multiple groups to watch. This would make it easier to maintain views like the contact list, which is based on metadata from multiple groups per contact.https://code.briarproject.org/briar/briar/-/issues/1447Core API for observing a message graph2020-12-08T12:17:23ZakwizgranCore API for observing a message graphThe core API exposes methods for getting a snapshot of the message graph in a group, such as `DatabaseComponent#getMessageIds()` and `DatabaseComponent#getDependencies()`, and events for learning about changes to the message graph, such ...The core API exposes methods for getting a snapshot of the message graph in a group, such as `DatabaseComponent#getMessageIds()` and `DatabaseComponent#getDependencies()`, and events for learning about changes to the message graph, such as `MessageAddedEvent` and `MessageStateChangedEvent` at the sync layer, or `PrivateMessageReceivedEvent` at the client layer.
The UI uses a combination of asynchronous DB queries and events to maintain a view of the message graph. Using the data attached to events to update the UI is more efficient than triggering a DB query for every event, but it causes a lot of complexity in the UI code because updates may happen concurrently with asynchronous loads (see #705).
All interactions between the UI and the DB are funnelled through the single-threaded DatabaseExecutor, mainly to ensure that queries return their results to the UI in the same order as the queries were started. The database allows read-only transactions to run concurrently, but queries running on the DatabaseExecutor can't take advantage of this because the executor is single-threaded.
If we could provide a better API for observing a message graph then we might be able to simplify the UI code and perhaps even improve DB performance by allowing more queries to run concurrently.
The new API should allow an observer to register an interest in a group's message graph and receive an initial snapshot of the graph, followed by an ordered series of updates when the graph changes. An observer registered from the UI will need to process the observations on the UI thread. As long as the core delivers the observations in order it should be easy to move them onto the UI thread in the same order.
We also need a way to register multiple observers that are ordered with respect to each other, so that we can create UI components that represent multiple groups, such as a conversation containing private messages, invitations, etc.
To ensure ordering, the DB will need to register any changes made by a transaction before releasing the DB lock. Events attached to transactions aren't currently suitable for communicating ordered changes because they're broadcast after releasing the DB lock, so two transactions that commit their changes in the order A, B may broadcast their events in the order B, A. But communicating changes to other components while holding the DB lock would have the potential to cause deadlock.
It might be possible to modify the event broadcasting logic so that events are registered before releasing the lock and broadcast afterwards, ensuring the broadcast order is consistent with the commit order. Alternatively we could create a separate mechanism for registering and communicating ordered changes.https://code.briarproject.org/briar/briar/-/issues/1444Show large emoji when no other text is included2020-11-15T19:46:01ZakwizgranShow large emoji when no other text is includedA user asked for emoji to be enlarged when the message contains no other text.A user asked for emoji to be enlarged when the message contains no other text.https://code.briarproject.org/briar/briar/-/issues/1443Flat conversation view for private groups2019-11-20T13:08:01ZakwizgranFlat conversation view for private groupsA user asked for private groups to be shown in a flat (unthreaded) view.
We've had requests for this before and never opened a ticket because a simple flat view based on message creation time or arrival time wouldn't work well with Bria...A user asked for private groups to be shown in a flat (unthreaded) view.
We've had requests for this before and never opened a ticket because a simple flat view based on message creation time or arrival time wouldn't work well with Briar's asynchronous message delivery. But apps like Slack and Mattermost have experimented with new ways to show asynchronous replies in a flat view, so perhaps the request should be considered.https://code.briarproject.org/briar/briar/-/issues/1441Expel members from forums2020-11-15T19:47:45ZakwizgranExpel members from forumsA user asked for the ability to expel members from forums.
This is less likely to be feasible than #1440, but I'm recording the request anyway.
Related to #512.A user asked for the ability to expel members from forums.
This is less likely to be feasible than #1440, but I'm recording the request anyway.
Related to #512.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/1439Notification light no longer shows when lockscreen notifications are disabled2020-11-15T19:49:18ZakwizgranNotification light no longer shows when lockscreen notifications are disabled* Android version: 6.0.1
* Phone model: Samsung SM-G900F (kltexx)
* Briar version: 1.1.3 (779d873)
* User feedback: "It was well before the update, ie if I turned off the notification on the lock screen, only the notification LED flashed...* Android version: 6.0.1
* Phone model: Samsung SM-G900F (kltexx)
* Briar version: 1.1.3 (779d873)
* User feedback: "It was well before the update, ie if I turned off the notification on the lock screen, only the notification LED flashed but no one knew because there was no information about where it came from but I knew that I had info from someone. Now how do I turn off I have no information about whether I have a message. Why you removed it?"
Presumably this is related to !925, which was released in version 1.1.2. (If I remember right, 1.1.2 was a beta-only release, so this user may have upgraded from 1.1.1 to 1.1.3, the version reported above.)https://code.briarproject.org/briar/briar/-/issues/1436AndroidLanTcpPlugin not picking up non-wifi connections2020-11-15T19:52:56ZJulian DehmAndroidLanTcpPlugin not picking up non-wifi connectionsWhen running Briar in Anbox the wifi icon never turns green and lan is not working because it's using `eth0` as interface. We currently only check if we are connected via Wi-Fi or run an AP. The plugin should pick up "wired" connections ...When running Briar in Anbox the wifi icon never turns green and lan is not working because it's using `eth0` as interface. We currently only check if we are connected via Wi-Fi or run an AP. The plugin should pick up "wired" connections if there's no wifi access.
> we just need to make sure it doesn't cause other android devices to treat the mobile data interface as a lan interface (it often gets assigned a lan address due to nat).https://code.briarproject.org/briar/briar/-/issues/1432Headless integration tests2020-11-18T17:04:10ZTorsten GroteHeadless integration testsWe should add some integration tests for the REST API endpoints to catch breakage.We should add some integration tests for the REST API endpoints to catch breakage.Headless MVPhttps://code.briarproject.org/briar/briar/-/issues/1431Try not to show languages with unsupported scripts2020-11-15T19:55:56ZakwizgranTry not to show languages with unsupported scriptsThe language selector should try to exclude languages with scripts that aren't supported by the device.
We still want to offer languages that aren't supported by the device, as long as the script is supported (e.g. Occitan, Asturian).
...The language selector should try to exclude languages with scripts that aren't supported by the device.
We still want to offer languages that aren't supported by the device, as long as the script is supported (e.g. Occitan, Asturian).
One possibility would be to have a list of exceptions, containing languages with scripts that are likely to be supported on all devices. Only languages that are supported by the device or included in the list of exceptions should be shown in the language selector.https://code.briarproject.org/briar/briar/-/issues/1430Restrict access to Tor's SOCKS port2023-10-23T14:08:41ZakwizgranRestrict access to Tor's SOCKS portAny process on localhost can connect to the SOCKS port of our Tor process and use it to make connections via Tor. Without having any specific attack in mind, I guess malicious apps running on localhost (which are within our threat model ...Any process on localhost can connect to the SOCKS port of our Tor process and use it to make connections via Tor. Without having any specific attack in mind, I guess malicious apps running on localhost (which are within our threat model on Android) might be able to use this to undermine the user's anonymity.
Tor uses the SOCKS username and password for circuit isolation, so if we wanted to password-protect the SOCKS port we'd have to add a config option to treat the password as a credential, perhaps keeping the username for circuit isolation.
Tor already has password-hashing code for the control port, which we might be able to reuse for the SOCKS port.
If this feature request passes the smell test let's open a ticket upstream.https://code.briarproject.org/briar/briar/-/issues/1429Configure Animal Sniffer to allow try-with-resources2021-08-09T12:30:08ZakwizgranConfigure Animal Sniffer to allow try-with-resourcesThe Animal Sniffer plugin, which we use to check that our code is compatible with the Java 6 API provided by older Android devices, rejects the try-with-resources statement added in Java 7. This is unfortunate, as Android's desugar prepr...The Animal Sniffer plugin, which we use to check that our code is compatible with the Java 6 API provided by older Android devices, rejects the try-with-resources statement added in Java 7. This is unfortunate, as Android's desugar preprocessor converts the statement to Java 6-compatible bytecode, so it's usable on older devices.
We should look for a way to configure Animal Sniffer so the statement isn't rejected.https://code.briarproject.org/briar/briar/-/issues/1424Prompted to 'allow unknown sources' when trying to install briar via its f-dr...2020-11-15T19:59:13ZlazzPrompted to 'allow unknown sources' when trying to install briar via its f-droid repository despite the privileged extension being installedWhen trying to install briar through its third party f-droid repository I get prompted to 'allow unknown sources' by android despite f-droid's privileged extension being installed and working with the main repo as well as other third par...When trying to install briar through its third party f-droid repository I get prompted to 'allow unknown sources' by android despite f-droid's privileged extension being installed and working with the main repo as well as other third party repos.
It has been hinted that this might be due to the briar project not using the current master of fdroid, where issues of that kind have been solved.
It was suggested that you look at https://gitlab.com/fdroid/admin/issues/65 for reference and check whether some of the problematic setup sounds familiar to you and applies to your setup.
Using the latest fdroid tools should solve this issue.https://code.briarproject.org/briar/briar/-/issues/1422ActivityRecord not found for ConversationActivity2022-06-13T15:11:23ZakwizgranActivityRecord not found for ConversationActivity* Android version: 8.1.0
* Briar version: 1.1.1 (9476782)
* Phone model: Samsung SM-J727A (j7popelteuc)
* User feedback: "It would not open any more."
Stacktrace:
```
java.lang.IllegalArgumentException: reportSizeConfigurations: Activit...* Android version: 8.1.0
* Briar version: 1.1.1 (9476782)
* Phone model: Samsung SM-J727A (j7popelteuc)
* User feedback: "It would not open any more."
Stacktrace:
```
java.lang.IllegalArgumentException: reportSizeConfigurations: ActivityRecord not found for: Token{72da83 ActivityRecord{c281601 u0 org.briarproject.briar.android/.contact.ConversationActivity t-1 f}}
at android.os.Parcel.readException(Parcel.java:2025)
at android.os.Parcel.readException(Parcel.java:1967)
at android.app.IActivityManager$Stub$Proxy.reportSizeConfigurations(IActivityManager.java:9838)
at android.app.ActivityThread.reportSizeConfigurations(ActivityThread.java:3102)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3045)
at android.app.ActivityThread.-wrap11(Unknown Source:0)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1711)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loop(Looper.java:164)
at android.app.ActivityThread.main(ActivityThread.java:6958)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:441)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1408)
```
Log:
```
10-08 10:37:18.003 I/AndroidAccountManager: No database key in preferences
10-08 10:37:18.005 I/AccountManagerImpl: Found database key in primary file
10-08 10:37:18.005 I/SplashScreenActivity: Account exists
10-08 10:37:18.403 I/AndroidAccountManager: No database key in preferences
10-08 10:37:18.403 I/AccountManagerImpl: Found database key in primary file
10-08 10:37:28.469 I/AndroidAccountManager: No database key in preferences
10-08 10:37:28.470 I/AccountManagerImpl: Found database key in primary file
10-08 10:37:29.093 I/BriarService: Created
10-08 10:37:29.114 I/LifecycleManagerImpl: Starting services
10-08 10:37:49.668 I/IdentityManagerImpl: No local author to store
10-08 10:37:49.671 I/IdentityManagerImpl: Local author loaded
10-08 10:37:49.679 I/AndroidNetworkManager: Received broadcast android.net.conn.CONNECTIVITY_CHANGE
10-08 10:37:55.291 I/PluginManagerImpl: Starting poller
10-08 10:37:55.292 I/PluginManagerImpl: Starting simplex plugins
10-08 10:37:55.292 I/PluginManagerImpl: Starting duplex plugins
10-08 10:37:55.308 I/AndroidLanTcpPlugin: Not connected to wifi
10-08 10:37:55.309 I/TorPlugin: Starting Tor
10-08 10:37:55.401 I/BluetoothPlugin: Local address null
10-08 10:37:55.452 I/BriarRecyclerView: Adding Handler Callback
10-08 10:37:57.166 I/TorPlugin: Oct 08 06:37:57.161 [notice] Tor 0.2.9.16 (git-645ef2e2854b2225) running on Linux with Libevent 2.0.22-stable, OpenSSL 1.0.2o and Zlib 1.2.8.
10-08 10:37:57.213 I/TorPlugin: Oct 08 06:37:57.165 [notice] Tor can't help you if you use it wrong! Learn how to be safe at https://www.torproject.org/download/download#warning
10-08 10:37:57.214 I/TorPlugin: Oct 08 06:37:57.167 [notice] Read configuration file \"/data/user/0/org.briarproject.briar.android/app_tor/torrc\".
10-08 10:37:57.214 I/TorPlugin: Oct 08 06:37:57.191 [notice] Opening Control listener on 127.0.0.1:59051
10-08 10:37:57.214 I/TorPlugin: Oct 08 06:37:57.191 [notice] DisableNetwork is set. Tor will not make or accept non-control network connections. Shutting down all existing connections.
10-08 10:37:57.216 I/TorPlugin: Auth cookie created
10-08 10:37:58.718 I/BriarRecyclerView: Adding Handler Callback
10-08 10:37:59.346 I/BriarRecyclerView: Removing Handler Callback
10-08 10:38:00.017 I/KeyboardAwareLinearLayout: onKeyboardOpen(542)
10-08 10:38:00.628 I/TorPlugin: Online: true, wifi: false
10-08 10:38:00.628 I/TorPlugin: Country code: US
10-08 10:38:00.628 I/TorPlugin: Enabling network, not using bridges
10-08 10:38:00.646 I/TorPlugin: NOTICE DisableNetwork is set. Tor will not make or accept non-control network connections. Shutting down all existing connections.
10-08 10:38:00.646 I/RenewableWakeLock: Acquiring wake lock LocationManagerService
10-08 10:38:00.667 I/TorPlugin: NOTICE Opening Socks listener on 127.0.0.1:59050
10-08 10:38:01.703 I/TorPlugin: NOTICE Bootstrapped 80%: Connecting to the Tor network
10-08 10:38:01.704 I/TorPlugin: OR connection LAUNCHED $7AA7FC80E3E0D32E929D2CC094EACF529C95264C~steinpilz
10-08 10:38:01.705 I/TorPlugin: OR connection LAUNCHED $1E17564CDD5A6B70A6F73C053A479BC5EE2D0A89~Unnamed
10-08 10:38:01.930 I/TorPlugin: NOTICE Bootstrapped 85%: Finishing handshake with first hop
10-08 10:38:02.641 I/TorPlugin: OR connection CONNECTED $1E17564CDD5A6B70A6F73C053A479BC5EE2D0A89~Unnamed
10-08 10:38:02.660 I/TorPlugin: NOTICE Bootstrapped 90%: Establishing a Tor circuit
10-08 10:38:02.660 I/TorPlugin: OR connection CONNECTED $7AA7FC80E3E0D32E929D2CC094EACF529C95264C~steinpilz
10-08 10:38:02.934 I/TorPlugin: First circuit built
10-08 10:38:03.696 I/TorPlugin: NOTICE Tor has successfully opened a circuit. Looks like client functionality is working.
10-08 10:38:03.696 I/TorPlugin: NOTICE Bootstrapped 100%: Done
10-08 10:38:03.697 I/FeedManagerImpl: Tor started, scheduling RSS feed fetcher
10-08 10:38:03.698 I/Poller: Polling plugin org.briarproject.bramble.tor
10-08 10:38:24.455 I/BriarRecyclerView: Removing Handler Callback
10-08 10:38:25.001 I/TorPlugin: Creating hidden service
10-08 10:38:25.028 I/TorPlugin: Hidden service tsb[scrubbed]
10-08 10:38:25.078 I/TorPlugin: Connecting to vye[scrubbed]
10-08 10:38:34.140 I/TorPlugin: Connected to vye[scrubbed]
10-08 10:38:35.400 I/DuplexOutgoingSession: Generated ack: false
10-08 10:38:35.446 I/DuplexOutgoingSession: Next send time decreased
10-08 10:38:35.446 I/DuplexOutgoingSession: Checking for retransmittable messages
10-08 10:38:35.446 I/DuplexOutgoingSession: Generated batch: false
10-08 10:38:35.485 I/ConnectionRegistryImpl: Outgoing connection registered: org.briarproject.bramble.tor
10-08 10:38:35.485 I/ConnectionRegistryImpl: Contact connected
10-08 10:38:35.533 I/DuplexOutgoingSession: Next send time decreased
10-08 10:38:35.591 I/DuplexOutgoingSession: Generated offer: true
10-08 10:38:35.592 I/DuplexOutgoingSession: Sent offer
10-08 10:38:35.592 I/DuplexOutgoingSession: Generated request: false
10-08 10:38:35.634 I/DuplexOutgoingSession: Generated batch: false
10-08 10:38:35.684 I/DuplexOutgoingSession: Generated offer: false
10-08 10:38:35.962 I/DuplexOutgoingSession: Generated request: true
10-08 10:38:35.962 I/DuplexOutgoingSession: Sent request
10-08 10:38:35.963 I/DuplexOutgoingSession: Generated request: false
10-08 10:38:37.048 I/DuplexOutgoingSession: Generated batch: true
10-08 10:38:37.048 I/DuplexOutgoingSession: Sent batch
10-08 10:38:37.091 I/DuplexOutgoingSession: Generated batch: false
10-08 10:38:37.619 I/DuplexOutgoingSession: Generated ack: true
10-08 10:38:37.619 I/DuplexOutgoingSession: Sent ack
10-08 10:38:37.786 I/DuplexOutgoingSession: Generated ack: false
10-08 10:38:45.493 I/Poller: Polling plugin org.briarproject.bramble.tor
10-08 10:38:45.496 I/ConnectionRegistryImpl: 1 contacts connected: org.briarproject.bramble.tor
10-08 10:38:50.421 I/BriarRecyclerView: Adding Handler Callback
10-08 10:39:00.649 I/RenewableWakeLock: Renewing wake lock LocationManagerService
10-08 10:39:03.698 I/FeedManagerImpl: Updating RSS feeds...
10-08 10:39:03.785 I/FeedManagerImpl: Done updating RSS feeds
10-08 10:39:05.679 I/TorPlugin: Descriptor uploaded
10-08 10:39:05.849 I/TorPlugin: Descriptor uploaded
10-08 10:39:07.478 I/TorPlugin: Descriptor uploaded
10-08 10:39:07.619 I/DuplexOutgoingSession: Sending keepalive
10-08 10:39:07.738 I/TorPlugin: Descriptor uploaded
10-08 10:39:08.159 I/TorPlugin: Descriptor uploaded
10-08 10:39:10.053 I/TorPlugin: Descriptor uploaded
10-08 10:39:11.885 I/DuplexOutgoingSession: Generated request: true
10-08 10:39:11.886 I/DuplexOutgoingSession: Sent request
10-08 10:39:11.886 I/DuplexOutgoingSession: Generated request: false
10-08 10:39:13.477 I/DuplexOutgoingSession: Generated ack: true
10-08 10:39:13.477 I/DuplexOutgoingSession: Sent ack
10-08 10:39:13.638 I/ConversationActivity: Message received, adding
10-08 10:39:13.660 I/DuplexOutgoingSession: Generated ack: false
10-08 10:39:36.968 I/DuplexOutgoingSession: Checking for retransmittable messages
10-08 10:39:37.036 I/DuplexOutgoingSession: Generated batch: false
10-08 10:39:37.081 I/DuplexOutgoingSession: Generated offer: false
10-08 10:39:43.478 I/DuplexOutgoingSession: Sending keepalive
10-08 10:39:45.494 I/Poller: Polling plugin org.briarproject.bramble.tor
10-08 10:39:45.498 I/ConnectionRegistryImpl: 1 contacts connected: org.briarproject.bramble.tor
10-08 10:40:00.651 I/RenewableWakeLock: Renewing wake lock LocationManagerService
10-08 10:40:08.417 I/BriarRecyclerView: Adding Handler Callback
```
From the log, it looks like the crash happened soon after startup, after sending and receiving private messages. The last line of the log suggests a transition between activities was in progress.
(Incidentally, when reading logs I often rely on the BriarRecyclerView's messages about its handler callback to make guesses about what's happening to the UI. Maybe we should just log the name of each activity when it starts and stops?)Android 1.4https://code.briarproject.org/briar/briar/-/issues/1419Online status in contact list can be confused with radio button2020-11-16T10:31:13ZTorsten GroteOnline status in contact list can be confused with radio buttonThe circle on the right of the avatar gives you an impression of a select radio button instead of online status.
![Online_1](/uploads/05ec34f3580ae8f05846fd807b516e9f/Online_1.png)
Placing the green circle on the corner of the avatar m...The circle on the right of the avatar gives you an impression of a select radio button instead of online status.
![Online_1](/uploads/05ec34f3580ae8f05846fd807b516e9f/Online_1.png)
Placing the green circle on the corner of the avatar might be more understandable:
![online](/uploads/055feea1e3c6de24587eb05c75b10f78/online.png)https://code.briarproject.org/briar/briar/-/issues/1415Develop scripts to use the OONI API to find locations where pluggable transpo...2020-11-15T20:02:27ZTorsten GroteDevelop scripts to use the OONI API to find locations where pluggable transports are neededhttps://code.briarproject.org/briar/briar/-/issues/1414Work with Briar users to set up OONI tests in censored locations2020-11-15T20:03:14ZTorsten GroteWork with Briar users to set up OONI tests in censored locationsThis is so we can find out where bridges are needed, so we can enable them automatically.This is so we can find out where bridges are needed, so we can enable them automatically.