briar issueshttps://code.briarproject.org/groups/briar/-/issues2020-11-18T02:38:55Zhttps://code.briarproject.org/briar/briar/-/issues/1278Use split APKs to make app available for Android Go2020-11-18T02:38:55ZakwizgranUse split APKs to make app available for Android GoApparently the Play Store doesn't offer APKs larger than 10 MB to Android Go devices. We should provide architecture-specific (ARM and x86) APKs to keep the size below 10 MB.
Idea stolen from Orbot. :-)
https://developer.android.com/st...Apparently the Play Store doesn't offer APKs larger than 10 MB to Android Go devices. We should provide architecture-specific (ARM and x86) APKs to keep the size below 10 MB.
Idea stolen from Orbot. :-)
https://developer.android.com/studio/build/configure-apk-splitshttps://code.briarproject.org/briar/briar/-/issues/1283improve password strenght indicator2020-11-18T02:34:08Zwugacohaimprove password strenght indicatorright now if you insert 1234567890 as your password the stenght indicator shows a long green bar, which reassures the user that the password is not weak..which is not the point. The indicator should be improved (KeepassX shows such stren...right now if you insert 1234567890 as your password the stenght indicator shows a long green bar, which reassures the user that the password is not weak..which is not the point. The indicator should be improved (KeepassX shows such strength if you add symbols and letters).https://code.briarproject.org/briar/briar/-/issues/1285Support OPML feeds2020-11-18T02:31:16ZakwizgranSupport OPML feedsA user asked for the ability to import OPML feeds as well as RSS. It looks like ROME has a module for OPML: http://rometools.github.io/rome-opml/A user asked for the ability to import OPML feeds as well as RSS. It looks like ROME has a module for OPML: http://rometools.github.io/rome-opml/https://code.briarproject.org/briar/briar/-/issues/1287Design update2020-11-18T02:29:31ZAllan NordhøyDesign updateSaw the interest in having some design done on OSD, couldn't make screenshots, so in writing for the time being.
Made a little list of my thoughts on getting things up and running.
Would be really nice to have one screenshot of everythi...Saw the interest in having some design done on OSD, couldn't make screenshots, so in writing for the time being.
Made a little list of my thoughts on getting things up and running.
Would be really nice to have one screenshot of everything to work with,then i could make a big image of it showing how different tasks are pieced together.
This is setting up stuff:
---
**Screen 1**
s/Welcome to Briar/Welcome/
! Put small logo top center
! Remove infotag
Username (in gray)
> ______________________ x ← red underline, turns green whenever the required amount of char has been entered
"Shown next to any content you post. Can not be changed."
// throw error message if illegal chars are entered
Password (in gray)
> ______________________ x
Can be changed from settings.
---
**Screen 2**
s/Choose a password/Password/
* Pick a secure password you remember (in gray)
> ______________________ ← starts out as a red line, progresses through the security stages, checkmark
* Confirm (in gray)
> ______________________ ← red line that turns green once matching checkmark
Press Next and passwords aren't matching, get error message
---
**Screen 3**
s/Background connections/Permissions
Access BT settings
> ______________________ ✓
Control vibration
> ______________________ ✓
Full network access
> ______________________ ✓
Pair with BT devices
> ______________________ ✓
Prevent phone from sleeping
> ______________________ ✓
View network connections
> ______________________ ✓
View Wi-Fi connections
> ______________________ ✓
Take pictures and video (moved here instead of being in the add contact dialog) (F-droid does not say "record" video.)
> ______________________ x s/Allow connections/Grant/
battery optimization exception.
> ______________________ x [Grant]
Needed to stay connected in the background
Same green underline when OK, red when not. checkmark
s/CREATE ACCOUNT/Create account/
--
**Screen 4**
s/add a contanct/Adding contacts/
This should be the landing page when having done the setup. (?)
--
Add "about" field in settings with license, contributors, where to find code, and translation platform.
There is a huge amount of polishing that can be done in other areas, and I thought this was a good start.https://code.briarproject.org/briar/briar/-/issues/1290Replying in ThreadListActivity does not highlight post when using hardware ke...2020-11-18T02:25:34ZTorsten GroteReplying in ThreadListActivity does not highlight post when using hardware keyboardI noticed this in an API 15 Android emulator which uses the hosts' hardware keyboard. Steps to reproduce:
1) Open a forum or private group thread
2) Add a message
3) Click the reply button on that message
Expected behavior: Message tha...I noticed this in an API 15 Android emulator which uses the hosts' hardware keyboard. Steps to reproduce:
1) Open a forum or private group thread
2) Add a message
3) Click the reply button on that message
Expected behavior: Message that is being replied to is scrolled up and highlighted. EditText hint changes to reply.
Observed behavior: Only EditText hint changes to reply.
This is because the code uses `OnKeyboardShownListener` to highlight the message. But this isn't called when using a hardware keyboard.https://code.briarproject.org/briar/briar/-/issues/1299Unable to add contacts: IP address is not in LAN2020-11-18T02:17:29ZakwizgranUnable to add contacts: IP address is not in LAN* Android version: 5.1.1
* Phone model: Nubia NX512J
* Briar version: 1.0.3 (e83d8bb)
* User feedback: "Add contacts does not work."
```
"Bluetooth address" : "90:[scrubbed]:1D",
"Bluetooth address from settings" : "90:[scru...* Android version: 5.1.1
* Phone model: Nubia NX512J
* Briar version: 1.0.3 (e83d8bb)
* User feedback: "Add contacts does not work."
```
"Bluetooth address" : "90:[scrubbed]:1D",
"Bluetooth address from settings" : "90:[scrubbed]:1D",
"Bluetooth status" : "Available, enabled, connectable, not discoverable",
"Mobile data status" : "Available, enabled, not connected",
"Wi-Fi Direct" : "Supported",
"Wi-Fi address" : "37.[scrubbed].223",
"Wi-Fi status" : "Available, enabled, connected"
```
The phone is connected to wifi, but the IP address is not a LAN address.
Possibly related to #699, #1209.https://code.briarproject.org/briar/briar/-/issues/1300Share button for RSS articles2020-11-18T02:15:37ZakwizgranShare button for RSS articlesUser feedback: "Nice RSS-Feature! I miss the "share"-button though. It is not very convenient to only share the link without the title of the article."User feedback: "Nice RSS-Feature! I miss the "share"-button though. It is not very convenient to only share the link without the title of the article."https://code.briarproject.org/briar/briar/-/issues/1308Configurable colours for text balloons2020-11-18T02:03:46ZakwizgranConfigurable colours for text balloonsA user asked for the ability to change the colours of text balloons.A user asked for the ability to change the colours of text balloons.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/1333Screen overlay warning is shown when dismissing dialog2020-11-18T01:44:17ZakwizgranScreen overlay warning is shown when dismissing dialogWhile smoke testing the 1.0.11 release on the Galaxy Nexus (Android 4.3), I saw the screen overlay warning after dismissing the error dialog and tapping the URL text field in the RSS import screen. Perhaps an overlay is used to animate t...While smoke testing the 1.0.11 release on the Galaxy Nexus (Android 4.3), I saw the screen overlay warning after dismissing the error dialog and tapping the URL text field in the RSS import screen. Perhaps an overlay is used to animate the dismissal of the dialog? I wasn't able to reproduce the issue.https://code.briarproject.org/briar/briar/-/issues/1326Prevent old messages from aborting client protocols2020-11-18T01:39:44ZakwizgranPrevent old messages from aborting client protocolsSome client protocols that use an abort message to reset the state machine are vulnerable to a race condition where incoming messages that were already in flight when the abort message was sent are received after resetting, causing furth...Some client protocols that use an abort message to reset the state machine are vulnerable to a race condition where incoming messages that were already in flight when the abort message was sent are received after resetting, causing further aborts. This is harmless if the state machine is still in the start state when the messages are received, but it may cause problems if the state machine has moved out of the start state.
The problem can be avoided by using an abort counter:
* Each party keeps a counter for each other party they sync with
* The counter is part of the session state
* The counter is initialised to zero
* The counter is reset to zero if the other party is removed as a contact
* The counter is included in every outgoing message
* Incoming messages with counters lower than the local counter are ignored
* The counter is incremented after sending or receiving an abort message
If two parties concurrently abort the protocol they may ignore each other's abort messages, but this appears to be harmless: either both will increment their counters once, or both twice.
Client protocols that use abort messages without counters will need to be upgraded to accommodate counters. It may be possible to do this with a minor version upgrade.https://code.briarproject.org/briar/briar/-/issues/1325Use Psiphon when Tor bridges are not reachable2020-11-18T01:38:59ZTorsten GroteUse Psiphon when Tor bridges are not reachableWe have been encouraged to use [Psiphon](https://www.psiphon.ca/) as a circumvention technology.
Here's how to add it:
> - Start the [Psiphon Library](https://github.com/Psiphon-Labs/psiphon-tunnel-core/tree/master/MobileLibrary/Androi...We have been encouraged to use [Psiphon](https://www.psiphon.ca/) as a circumvention technology.
Here's how to add it:
> - Start the [Psiphon Library](https://github.com/Psiphon-Labs/psiphon-tunnel-core/tree/master/MobileLibrary/Android) and get its SOCKS proxy port
> - Configure the Tor client run by Briar to proxy through Psiphon using the "Socks5Proxy" config setting (https://www.torproject.org/docs/tor-manual.html.en)
> - The Tor client traffic egresses from the Psiphon server, connects to a Tor node, and gets to hidden services from there. Psiphon doesn't need to know about the hidden service part.https://code.briarproject.org/briar/briar/-/issues/1321Add backpressure to outgoing duplex sync sessions2020-11-18T01:37:42ZakwizgranAdd backpressure to outgoing duplex sync sessionsDuplexOutgoingSession reads records from the database as quickly as possible and queues them for transmission. If the DB is faster than the transport, this will result in all sendable records being queued. This uses an unbounded amount o...DuplexOutgoingSession reads records from the database as quickly as possible and queues them for transmission. If the DB is faster than the transport, this will result in all sendable records being queued. This uses an unbounded amount of memory and increases the risk of records being lost before they're transmitted, leading to unnecessary retransmissions.
Add a backpressure mechanism that limits the amount of queued data and delays DB reads when the queue is full.
This will be a bit more complex than #1319 because DuplexOutgoingSession can start DB queries in response to events.https://code.briarproject.org/briar/briar/-/issues/1320Add backpressure to incoming sync sessions2020-11-18T01:34:09ZakwizgranAdd backpressure to incoming sync sessionsIncomingSession reads records from the transport as quickly as possible and queues them to be added to the DB. If the transport is faster than the DB, this will result in an unbounded number of records being queued. This uses an unbounde...IncomingSession reads records from the transport as quickly as possible and queues them to be added to the DB. If the transport is faster than the DB, this will result in an unbounded number of records being queued. This uses an unbounded amount of memory, which is a DoS risk.
Add a backpressure mechanism that limits the amount of queued data and delays reading from the connection when the queue is full.https://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/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.https://code.briarproject.org/briar/briar/-/issues/1342BriarService dies, but retains database key2020-11-17T16:11:35ZTorsten GroteBriarService dies, but retains database keySome time ago, I opened Briar and the app was starting the `NavDrawerActivity` strangely slow. When it came up, all contacts were offline and all plugins in the NavDrawer were also offline. They came online slowly afterwards, but the app...Some time ago, I opened Briar and the app was starting the `NavDrawerActivity` strangely slow. When it came up, all contacts were offline and all plugins in the NavDrawer were also offline. They came online slowly afterwards, but the app seemed to have been dead. The first time, I couldn't get useful logs, but just now it happened again and I could retrieve the following log.
It looks like the app was kind of restarting at 13:42 but without creating/starting `BriarService`. When I opened the app at 15:40 the service got finally started and still found the key in `AndroidDatabaseConfig`.
```
07-12 13:42:38.551 org.briarproject.briar.android I/BriarApplicationImpl: Created
07-12 13:42:38.699 org.briarproject.briar.android I/AndroidDatabaseConfig: Database directory: /data/user/0/org.briarproject.briar.android/app_db
07-12 13:42:38.721 org.briarproject.briar.android I/CryptoComponentImpl: Default SecureRandom: AndroidOpenSSL SHA1PRNG
07-12 13:42:38.827 org.briarproject.briar.android I/zygote64: Do partial code cache collection, code=29KB, data=20KB
07-12 13:42:38.828 org.briarproject.briar.android I/zygote64: After code cache collection, code=29KB, data=20KB
Increasing code cache capacity to 128KB
07-12 13:42:38.927 org.briarproject.briar.android I/zygote64: Do partial code cache collection, code=61KB, data=40KB
After code cache collection, code=59KB, data=40KB
Increasing code cache capacity to 256KB
07-12 13:42:38.932 org.briarproject.briar.android I/CryptoComponentImpl: Installed SecureRandom: LinuxPRNG SHA1PRNG
07-12 13:42:39.970 org.briarproject.briar.android I/LifecycleManagerImpl: Registering executor TimeLoggingExecutor
07-12 13:42:39.971 org.briarproject.briar.android I/LifecycleManagerImpl: Registering executor ThreadPoolExecutor
Registering executor ScheduledThreadPoolExecutor
07-12 13:42:39.981 org.briarproject.briar.android I/LifecycleManagerImpl: Registering service KeyManagerImpl
Registering executor TimeLoggingExecutor
07-12 13:42:39.999 org.briarproject.briar.android I/LifecycleManagerImpl: Registering service ValidationManagerImpl
07-12 13:42:40.015 org.briarproject.briar.android I/LifecycleManagerImpl: Registering client ClientVersioningManagerImpl
Registering service ClientVersioningManagerImpl
07-12 13:42:40.020 org.briarproject.briar.android I/LifecycleManagerImpl: Registering client TransportPropertyManagerImpl
07-12 13:42:40.021 org.briarproject.briar.android I/LifecycleManagerImpl: Registering service PluginManagerImpl
07-12 13:42:40.034 org.briarproject.briar.android I/LifecycleManagerImpl: Registering client BlogManagerImpl
07-12 13:42:40.041 org.briarproject.briar.android I/LifecycleManagerImpl: Registering client FeedManagerImpl
07-12 13:42:40.069 org.briarproject.briar.android I/LifecycleManagerImpl: Registering client GroupInvitationManagerImpl
07-12 13:42:40.072 org.briarproject.briar.android I/LifecycleManagerImpl: Registering client MessagingManagerImpl
07-12 13:42:40.090 org.briarproject.briar.android I/LifecycleManagerImpl: Registering client ForumSharingManagerImpl
07-12 13:42:40.094 org.briarproject.briar.android I/LifecycleManagerImpl: Registering client BlogSharingManagerImpl
07-12 13:42:40.116 org.briarproject.briar.android I/LifecycleManagerImpl: Registering client IntroductionManagerImpl
07-12 13:42:40.129 org.briarproject.briar.android I/LifecycleManagerImpl: Registering service AndroidNotificationManagerImpl
07-12 13:42:40.130 org.briarproject.briar.android I/LifecycleManagerImpl: Registering service NetworkUsageLogger
07-12 13:42:40.131 org.briarproject.briar.android I/LifecycleManagerImpl: Registering service DozeWatchdogImpl
07-12 13:42:40.132 org.briarproject.briar.android D/StrictMode: StrictMode policy violation; ~duration=1347 ms: android.os.StrictMode$StrictModeUnbufferedIOViolation: policy=65596 violation=32
at android.os.StrictMode$AndroidBlockGuardPolicy.onUnbufferedIO(StrictMode.java:1427)
at libcore.io.IoTracker.trackIo(IoTracker.java:35)
at java.io.FileOutputStream.write(FileOutputStream.java:325)
at java.io.DataOutputStream.write(DataOutputStream.java:107)
at java.io.FilterOutputStream.write(FilterOutputStream.java:97)
at org.briarproject.bramble.system.AbstractSecureRandomProvider.writeToEntropyPool(AbstractSecureRandomProvider.java:30)
at org.briarproject.bramble.system.AndroidSecureRandomProvider.writeToEntropyPool(AndroidSecureRandomProvider.java:42)
at org.briarproject.bramble.system.LinuxSecureRandomProvider.writeSeed(LinuxSecureRandomProvider.java:48)
at org.briarproject.bramble.system.AndroidSecureRandomProvider.writeSeed(AndroidSecureRandomProvider.java:72)
at org.briarproject.bramble.system.LinuxSecureRandomProvider.getProvider(LinuxSecureRandomProvider.java:40)
at org.briarproject.bramble.crypto.CryptoComponentImpl.<init>(CryptoComponentImpl.java:65)
at org.briarproject.bramble.crypto.CryptoModule.provideCryptoComponent(CryptoModule.java:32)
at org.briarproject.bramble.crypto.CryptoModule_ProvideCryptoComponentFactory.get(CryptoModule_ProvideCryptoComponentFactory.java:26)
at org.briarproject.bramble.crypto.CryptoModule_ProvideCryptoComponentFactory.get(CryptoModule_ProvideCryptoComponentFactory.java:9)
at dagger.internal.ScopedProvider.get(ScopedProvider.java:46)
at org.briarproject.bramble.lifecycle.LifecycleModule_ProvideLifecycleManagerFactory.get(LifecycleModule_ProvideLifecycleManagerFactory.java:39)
at org.briarproject.bramble.lifecycle.LifecycleModule_ProvideLifecycleManagerFactory.get(LifecycleModule_ProvideLifecycleManagerFactory.java:13)
at dagger.internal.ScopedProvider.get(ScopedProvider.java:46)
at org.briarproject.bramble.transport.TransportModule_ProvideKeyManagerFactory.get(TransportModule_ProvideKeyManagerFactory.java:30)
at org.briarproject.bramble.transport.TransportModule_ProvideKeyManagerFactory.get(TransportModule_ProvideKeyManagerFactory.java:10)
at dagger.internal.ScopedProvider.get(ScopedProvider.java:46)
at org.briarproject.bramble.contact.ContactManagerImpl_Factory.get(ContactManagerImpl_Factory.java:23)
at org.briarproject.bramble.contact.ContactManagerImpl_Factory.get(ContactManagerImpl_Factory.java:9)
at org.briarproject.bramble.contact.ContactModule_GetContactManagerFactory.get(ContactModule_GetContactManagerFactory.java:22)
at org.briarproject.bramble.contact.ContactModule_GetContactManagerFactory.get(ContactModule_GetContactManagerFactory.java:8)
at dagger.internal.ScopedProvider.get(ScopedProvider.java:46)
at org.briarproject.bramble.contact.ContactModule$EagerSingletons_MembersInjector.injectMembers(ContactModule$EagerSingletons_MembersInjector.java:23)
at org.briarproject.bramble.contact.ContactModule$EagerSingletons_MembersInjector.injectMembers(ContactModule$EagerSingletons_MembersInjector.java:9)
at org.briarproject.briar.android.DaggerAndroidComponent.inject(DaggerAndroidComponent.java:698)
at org.briarproject.bramble.BrambleCoreModule.initEagerSingletons(BrambleCoreModule.java:55)
at org.briarproject.briar.android.BriarApplicationImpl.onCreate(BriarApplicationImpl.java:117)
at android.app.Instrumentation.callApplicationOnCreate(Instrumentation.java:1119)
at android.app.ActivityThread.handleBindApplication(ActivityThread.java:5740)
at android.app.ActivityThread.-wrap1(Unknown Source:0)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1656)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loop(Looper.java:164)
at android.app.ActivityThread.main(ActivityThread.java:6494)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:440)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:807)
07-12 13:42:40.337 org.briarproject.briar.android I/LifecycleManagerImpl: Registering service ScreenFilterMonitorImpl
07-12 13:42:40.343 org.briarproject.briar.android I/AndroidDatabaseConfig: Database key has been set: false
07-12 13:42:40.740 org.briarproject.briar.android I/BriarRecyclerView: Adding Handler Callback
07-12 13:42:40.744 org.briarproject.briar.android I/AndroidDatabaseConfig: Database key has been set: false
07-12 13:42:40.801 org.briarproject.briar.android I/AndroidDatabaseConfig: Database key directory: /data/user/0/org.briarproject.briar.android/app_key
07-12 13:42:40.802 org.briarproject.briar.android I/AndroidDatabaseConfig: Database key has been set: false
07-12 13:42:40.803 org.briarproject.briar.android I/ConfigControllerImpl: No database key in preferences
07-12 13:42:40.807 org.briarproject.briar.android I/ConfigControllerImpl: Found database key in primary file
07-12 13:42:40.808 org.briarproject.briar.android I/AndroidDatabaseConfig: Files in /data/user/0/org.briarproject.briar.android/app_db:
db.mv.db
Database exists: true
07-12 13:42:40.911 org.briarproject.briar.android I/TextInputLayout: EditText added is not a TextInputEditText. Please switch to using that class instead.
07-12 13:42:41.072 org.briarproject.briar.android I/zygote64: Do full code cache collection, code=124KB, data=90KB
07-12 13:42:41.073 org.briarproject.briar.android I/zygote64: After code cache collection, code=90KB, data=45KB
07-12 13:42:41.137 org.briarproject.briar.android I/AndroidDatabaseConfig: Database key has been set: false
07-12 13:42:41.243 org.briarproject.briar.android I/Adreno: QUALCOMM build : 8c8f5af, Ic7262d4df1
Build Date : 10/28/17
OpenGL ES Shader Compiler Version: EV031.20.00.04
Local Branch :
Remote Branch : quic/gfx-adreno.lnx.1.9.r3-rel
Remote Branch : NONE
Reconstruct Branch : NOTHING
07-12 13:42:41.249 org.briarproject.briar.android I/Adreno: PFP: 0x005ff087, ME: 0x005ff063
07-12 13:42:41.406 org.briarproject.briar.android I/BriarRecyclerView: Removing Handler Callback
07-12 13:42:43.020 org.briarproject.briar.android I/zygote64: Do partial code cache collection, code=123KB, data=76KB
After code cache collection, code=123KB, data=76KB
Increasing code cache capacity to 512KB
07-12 13:42:44.903 org.briarproject.briar.android I/ConfigControllerImpl: No database key in preferences
07-12 13:42:44.907 org.briarproject.briar.android I/ConfigControllerImpl: Found database key in primary file
07-12 13:42:45.758 org.briarproject.briar.android I/AndroidDatabaseConfig: Setting database key
07-12 15:40:21.565 org.briarproject.briar.android I/BriarRecyclerView: Adding Handler Callback
07-12 15:40:21.567 org.briarproject.briar.android I/AndroidDatabaseConfig: Database key has been set: true
07-12 15:40:21.589 org.briarproject.briar.android I/BriarService: Created
07-12 15:40:21.589 org.briarproject.briar.android I/AndroidDatabaseConfig: Database key has been set: true
07-12 15:40:21.611 org.briarproject.briar.android I/AndroidDatabaseConfig: Local author name has been set: false
07-12 15:40:21.615 org.briarproject.briar.android I/LifecycleManagerImpl: Starting services
07-12 15:40:21.617 org.briarproject.briar.android I/AndroidDatabaseConfig: Files in /data/user/0/org.briarproject.briar.android/app_db:
07-12 15:40:21.618 org.briarproject.briar.android I/AndroidDatabaseConfig: db.mv.db
Database exists: true
07-12 15:40:21.763 org.briarproject.briar.android I/AndroidDatabaseConfig: Database key has been set: true
07-12 15:40:22.086 org.briarproject.briar.android I/zygote64: Do full code cache collection, code=237KB, data=201KB
07-12 15:40:22.087 org.briarproject.briar.android I/zygote64: After code cache collection, code=205KB, data=138KB
07-12 15:40:25.581 org.briarproject.briar.android I/zygote64: Do partial code cache collection, code=250KB, data=146KB
After code cache collection, code=249KB, data=146KB
Increasing code cache capacity to 1024KB
07-12 15:40:27.227 org.briarproject.briar.android I/IdentityManagerImpl: Local author loaded
07-12 15:40:28.027 org.briarproject.briar.android I/PluginManagerImpl: Starting poller
07-12 15:40:28.030 org.briarproject.briar.android I/PluginManagerImpl: Starting simplex plugins
Starting duplex plugins
07-12 15:40:28.044 org.briarproject.briar.android I/AndroidDatabaseConfig: Database key has been set: true
07-12 15:40:28.056 org.briarproject.briar.android I/TorPlugin: Starting Tor
```https://code.briarproject.org/briar/briar/-/issues/1347Annotate UI methods that run on background threads2020-11-17T16:09:10ZakwizgranAnnotate UI methods that run on background threadsWe tend to assume that UI components are only accessed on the UI thread and don't need to be thread-safe, but sometimes this isn't true. Create an annotation for UI methods that run on background threads. (Methods that run on particular ...We tend to assume that UI components are only accessed on the UI thread and don't need to be thread-safe, but sometimes this isn't true. Create an annotation for UI methods that run on background threads. (Methods that run on particular executors can use the existing executor annotations.)https://code.briarproject.org/briar/briar/-/issues/1353Create fake data for automated screenshots2020-11-17T16:08:47ZakwizgranCreate fake data for automated screenshotsCreate fake data that can be inserted into the app by an Espresso test when taking screenshots for the manual or app store.Create fake data that can be inserted into the app by an Espresso test when taking screenshots for the manual or app store.https://code.briarproject.org/briar/briar/-/issues/1359ConversationView shows progress wheel over messages on Nexus 5X2020-11-17T16:08:14ZakwizgranConversationView shows progress wheel over messages on Nexus 5XI noticed this on the Nexus 5X (Android 8.1) with current master (25b8932cde226b75bcf92bdeeaa450e030f23cd6) and can reliably reproduce it there, but I can't reproduce it on the Moto G 4G running the same code.
Steps to reproduce:
* Sign...I noticed this on the Nexus 5X (Android 8.1) with current master (25b8932cde226b75bcf92bdeeaa450e030f23cd6) and can reliably reproduce it there, but I can't reproduce it on the Moto G 4G running the same code.
Steps to reproduce:
* Sign into Briar
* Open a private conversation containing some messages
* Turn the screen off and on again, or press the home button and then resume Briar from recent apps
* The progress wheel appears over the top of the messages and doesn't disappear
![device-2018-08-03-174457](/uploads/6336724b37de55a224e83643276936da/device-2018-08-03-174457.png)