briar issueshttps://code.briarproject.org/briar/briar/-/issues2022-07-13T11:04:48Zhttps://code.briarproject.org/briar/briar/-/issues/2337Briar on PIxel 2 able to link with two mailbox devices2022-07-13T11:04:48ZIvanaBriar on PIxel 2 able to link with two mailbox devicesSteps to reproduce: (17th June)
Install newest version of Briar on Pixel 2 (android 11)
Install newest version of mailbox on Nokia 3.2 (android 10)
Install newest version of mailbox on Samsung 6810 (Android 4.1.2)
Link the Briar app on...Steps to reproduce: (17th June)
Install newest version of Briar on Pixel 2 (android 11)
Install newest version of mailbox on Nokia 3.2 (android 10)
Install newest version of mailbox on Samsung 6810 (Android 4.1.2)
Link the Briar app on Pixel 2 with mailbox app on Nokia 3.2
When both devices show the 'Connected' screens, switch the internet off (at router, modem...)
Both devices show the offline screen. Pixel 2 shows offline screen (briar app) and Nokia 3.2 only shows the offline screen after I tap on Finish.
The Briar offline screen has a button Try again. this works well before the two devices are actually linked, and it gives them the opportunity to try and link again.
However, this button is still available even after they have successfully linked.
Switch the internet back on.
I restart the internet. Nokia 3.2 shows the Mailbox is running screen. Pixel 2 still shows the offline screen. If I tap the Try again button, it leads me to the Scan Mailbox QR code screen.
**- It should show me Mailbox is runnign screen at this point. **
I then take another device (Samsung 6810) and display the QR code. I use the briar app (which is already linked to one mailbox) to scan the code, and the scan goes ahead OK. I get a success screen.
This means that I am able to use briar to connect to two different mailbox devices.
At this point, each of the two mailbox devices is showing Mailbox is running screen, as does the Briar app.
Repeated the same steps twice - it appears to be repeatable.
I have tried to repeat it with another combination ofdevices - HTc E9 One Android 5.0.2, Samsing I9195 (Android 4.4.2) and Nokia 3.2 Android 10. Using HTC as the briar device, I still get the 'Try again'button on the offline screen, and it takes me to the Scan the QR code screen. But scanning doesn't seem to work - ie I just get Unable to connect, Try again. This workflow seems slightly different from the above one, but it is still not correct...Mailbox: PairingIvanaIvanahttps://code.briarproject.org/briar/briar/-/issues/2336DatabaseComponent#getNextSendTime() should consider latency2022-06-17T13:33:31ZakwizgranDatabaseComponent#getNextSendTime() should consider latencyDatabaseComponent#getNextSendTime() returns the earliest retransmission time of any message that's eligible to be sent to a given contact. It should also consider the rule that a message can be retransmitted immediately if the current tr...DatabaseComponent#getNextSendTime() returns the earliest retransmission time of any message that's eligible to be sent to a given contact. It should also consider the rule that a message can be retransmitted immediately if the current transport has lower latency than the transport over which the message was last transmitted.Mailbox: Manage mailbox connectionsakwizgranakwizgranhttps://code.briarproject.org/briar/briar/-/issues/2335Show warning dialog if Tor detects clock skew2022-06-14T11:54:25ZakwizgranShow warning dialog if Tor detects clock skewThe Tor plugin already listens for STATUS_GENERAL events from Tor and parses CLOCK_SKEW messages. It should use these messages to broadcast EventBus events that can be received by the UI.
The UI should react to these events by showing a...The Tor plugin already listens for STATUS_GENERAL events from Tor and parses CLOCK_SKEW messages. It should use these messages to broadcast EventBus events that can be received by the UI.
The UI should react to these events by showing a warning dialog telling the user to check that the device's time, date and timezone are correct (perhaps with some filtering to ensure that we don't show the dialog again immediately after the user has dismissed it).
The dialog should be shown immediately if clock skew is detected while the app's in the foreground. If clock skew is detected while the app is in the background then the dialog should be shown when the app's brought to the foreground. We may be able to use a LiveEvent for this.https://code.briarproject.org/briar/briar/-/issues/2334IllegalArgumentException: Center point is not inside any of the rectangles2022-06-13T15:46:19ZakwizgranIllegalArgumentException: Center point is not inside any of the rectangles* Android version: 11
* Phone model: Realme RMX3085 (RMX3085RU)
* Briar version: 1.4.5 (4df523a)
Last lines of log:
```
03-06 17:10:56.730 I/BaseActivity: Pausing ConversationActivity
03-06 17:10:56.741 I/BaseActivity: Starting NavDrawe...* Android version: 11
* Phone model: Realme RMX3085 (RMX3085RU)
* Briar version: 1.4.5 (4df523a)
Last lines of log:
```
03-06 17:10:56.730 I/BaseActivity: Pausing ConversationActivity
03-06 17:10:56.741 I/BaseActivity: Starting NavDrawerActivity
03-06 17:10:56.741 I/BaseActivity: Resuming NavDrawerActivity
03-06 17:10:57.210 I/BaseActivity: Stopping ConversationActivity
03-06 17:10:57.213 I/BaseActivity: Destroying ConversationActivity
03-06 17:11:01.090 I/BaseActivity: Pausing NavDrawerActivity
03-06 17:11:01.100 I/BaseActivity: Creating ConversationActivity
03-06 17:11:01.108 I/ConversationViewModel: PrivateMessageFormat loaded: TEXT_IMAGES_AUTO_DELETE
03-06 17:11:01.121 I/BaseActivity: Starting ConversationActivity
03-06 17:11:01.123 I/BaseActivity: Resuming ConversationActivity
03-06 17:11:01.159 I/ConversationActivity: Eagerly loading text for latest message
03-06 17:11:01.577 I/BaseActivity: Stopping NavDrawerActivity
03-06 17:11:02.299 I/BaseActivity: Pausing ConversationActivity
03-06 17:11:02.309 I/BaseActivity: Starting NavDrawerActivity
03-06 17:11:02.309 I/BaseActivity: Resuming NavDrawerActivity
03-06 17:11:02.781 I/BaseActivity: Stopping ConversationActivity
03-06 17:11:02.783 I/BaseActivity: Destroying ConversationActivity
03-06 17:11:03.434 I/BaseActivity: Pausing NavDrawerActivity
03-06 17:11:03.447 I/BaseActivity: Creating ConversationActivity
03-06 17:11:03.452 I/ConversationViewModel: PrivateMessageFormat loaded: TEXT_IMAGES_AUTO_DELETE
03-06 17:11:03.468 I/BaseActivity: Starting ConversationActivity
03-06 17:11:03.469 I/BaseActivity: Resuming ConversationActivity
03-06 17:11:03.506 I/ConversationActivity: Eagerly loading text for latest message
03-06 17:11:03.923 I/BaseActivity: Stopping NavDrawerActivity
```
Stacktrace:
```
java.lang.IllegalArgumentException: Center point is not inside any of the rectangles!
at android.widget.SmartSelectSprite.startAnimation(SmartSelectSprite.java:391)
at android.widget.SelectionActionModeHelper.startSelectionActionModeWithSmartSelectAnimation(SelectionActionModeHelper.java:357)
at android.widget.SelectionActionModeHelper.lambda$l1f1_V5lw6noQxI_3u11qF753Iw(Unknown Source:0)
at android.widget.-$$Lambda$SelectionActionModeHelper$l1f1_V5lw6noQxI_3u11qF753Iw.accept(Unknown Source:4)
at android.widget.SelectionActionModeHelper$TextClassificationAsyncTask.onPostExecute(SelectionActionModeHelper.java:1039)
at android.widget.SelectionActionModeHelper$TextClassificationAsyncTask.onPostExecute(SelectionActionModeHelper.java:993)
at android.os.AsyncTask.finish(AsyncTask.java:771)
at android.os.AsyncTask.access$900(AsyncTask.java:199)
at android.os.AsyncTask$InternalHandler.handleMessage(AsyncTask.java:788)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loop(Looper.java:255)
at android.app.ActivityThread.main(ActivityThread.java:8232)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:632)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1049)
```
Possibly a platform bug that was triggered when selecting text?https://code.briarproject.org/briar/briar/-/issues/2333AssertionError in TextAttachmentController when previewing attachments2022-06-13T15:40:19ZakwizgranAssertionError in TextAttachmentController when previewing attachments* Android version: 9
* Phone model: Tecno KC2j (H6113)
* Briar version: 1.4.5 (4df523a)
Edited log:
```
03-23 21:53:07.213 I/BaseActivity: Starting ConversationActivity
03-23 21:53:07.214 I/BaseActivity: Resuming ConversationActivity
03...* Android version: 9
* Phone model: Tecno KC2j (H6113)
* Briar version: 1.4.5 (4df523a)
Edited log:
```
03-23 21:53:07.213 I/BaseActivity: Starting ConversationActivity
03-23 21:53:07.214 I/BaseActivity: Resuming ConversationActivity
03-23 21:53:17.378 I/BaseActivity: Pausing ConversationActivity
03-23 21:53:17.827 I/BaseActivity: Stopping ConversationActivity
03-23 21:53:18.516 I/BaseActivity: Starting ConversationActivity
03-23 21:53:18.518 I/BaseActivity: Resuming ConversationActivity
03-23 21:53:19.508 I/BaseActivity: Pausing ConversationActivity
03-23 21:53:19.557 I/ConversationActivity: Concurrent update, reloading
03-23 21:53:19.906 I/AutoDeleteManagerImpl: Sending message with auto-delete timer -1
03-23 21:53:20.007 I/BaseActivity: Stopping ConversationActivity
03-23 21:53:20.065 I/ContactsViewModel: Conversation message tracked, updating item
03-23 21:53:21.340 I/AutoDeleteManagerImpl: Sending message with auto-delete timer -1
03-23 21:53:21.467 I/ContactsViewModel: Conversation message tracked, updating item
03-23 21:53:21.533 I/BaseActivity: Starting ConversationActivity
03-23 21:53:21.550 I/BaseActivity: Resuming ConversationActivity
03-23 21:53:21.583 I/ImageCompressorImpl: Original image size: 640x1337
03-23 21:53:21.583 I/ImageCompressorImpl: Scaling attachment by factor of 2
03-23 21:53:21.657 I/ImageCompressorImpl: Compressed image to 28878 bytes, quality 60
03-23 21:53:41.496 I/AndroidTaskScheduler: Running 1 due tasks
03-23 21:53:41.496 I/AndroidTaskScheduler: Task is 2 ms overdue
03-23 21:53:42.337 I/AndroidTaskScheduler: Running 1 due tasks
03-23 21:53:42.337 I/AndroidTaskScheduler: Task is 1 ms overdue
03-23 21:53:54.255 I/ConversationActivity: Eagerly loading text for latest message
03-23 21:53:54.495 I/ConversationActivity: Concurrent update, reloading
```
Stacktrace:
```
java.lang.AssertionError
at org.briarproject.briar.android.view.TextAttachmentController.onNewAttachmentItemResults(TextAttachmentController.java:200)
at org.briarproject.briar.android.view.TextAttachmentController.access$000(TextAttachmentController.java:44)
at org.briarproject.briar.android.view.TextAttachmentController$1.onChanged(TextAttachmentController.java:187)
at org.briarproject.briar.android.view.TextAttachmentController$1.onChanged(TextAttachmentController.java:179)
at androidx.lifecycle.LiveData.considerNotify(LiveData.java:133)
at androidx.lifecycle.LiveData.dispatchingValue(LiveData.java:151)
at androidx.lifecycle.LiveData.setValue(LiveData.java:309)
at androidx.lifecycle.MutableLiveData.setValue(MutableLiveData.java:50)
at androidx.lifecycle.LiveData$1.run(LiveData.java:93)
at android.os.Handler.handleCallback(Handler.java:873)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:193)
at android.app.ActivityThread.main(ActivityThread.java:6758)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:497)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:912)
```
This looks similar to #2218 but it's a different assertion that's failing.Android 1.4https://code.briarproject.org/briar/briar/-/issues/2332NPE in AutofillManager2022-06-13T15:14:03ZakwizgranNPE in AutofillManager* Android version: 12
* Phone model: OnePlus LE2125 (OnePlus9Pro)
* Briar version: 1.4.5 (4df523a)
Log:
```
03-16 13:27:13.111 I/BriarApplicationImpl: Created
03-16 13:27:13.125 I/BaseActivity: Creating SplashScreenActivity
03-16 13:27:...* Android version: 12
* Phone model: OnePlus LE2125 (OnePlus9Pro)
* Briar version: 1.4.5 (4df523a)
Log:
```
03-16 13:27:13.111 I/BriarApplicationImpl: Created
03-16 13:27:13.125 I/BaseActivity: Creating SplashScreenActivity
03-16 13:27:13.137 I/BaseActivity: Starting SplashScreenActivity
03-16 13:27:13.137 I/BaseActivity: Resuming SplashScreenActivity
03-16 13:27:13.656 I/BaseActivity: Pausing SplashScreenActivity
03-16 13:27:13.666 I/BaseActivity: Creating NavDrawerActivity
03-16 13:27:13.682 I/BaseActivity: Starting NavDrawerActivity
03-16 13:27:13.683 I/BaseActivity: Resuming NavDrawerActivity
03-16 13:27:13.683 I/BriarActivity: Not signed in, launching StartupActivity
03-16 13:27:13.690 I/BaseActivity: Pausing NavDrawerActivity
03-16 13:27:13.697 I/BaseActivity: Creating StartupActivity
03-16 13:27:13.701 I/AccountManagerImpl: Found database key in primary file
03-16 13:27:13.701 I/BaseActivity: Starting StartupActivity
03-16 13:27:13.709 I/BaseActivity: Resuming StartupActivity
03-16 13:27:13.739 I/BaseActivity: Stopping NavDrawerActivity
03-16 13:27:14.167 I/BaseActivity: Stopping SplashScreenActivity
03-16 13:27:14.167 I/BaseActivity: Destroying SplashScreenActivity
03-16 13:27:16.222 I/BaseActivity: Pausing StartupActivity
03-16 13:27:17.069 I/BaseActivity: Stopping StartupActivity
```
Stacktrace:
```
Failure delivering result ResultInfo{who=@android:autoFillAuth:, request=1048576, result=-1, data=Intent { }} to activity {org.briarproject.briar.android/org.briarproject.briar.android.login.StartupActivity}: java.lang.NullPointerException: Attempt to invoke virtual method 'boolean android.os.Bundle.containsKey(java.lang.String)' on a null object reference
java.lang.RuntimeException: Failure delivering result ResultInfo{who=@android:autoFillAuth:, request=1048576, result=-1, data=Intent { }} to activity {org.briarproject.briar.android/org.briarproject.briar.android.login.StartupActivity}: java.lang.NullPointerException: Attempt to invoke virtual method 'boolean android.os.Bundle.containsKey(java.lang.String)' on a null object reference
at android.app.ActivityThread.deliverResults(ActivityThread.java:5510)
at android.app.ActivityThread.handleSendResult(ActivityThread.java:5549)
at android.app.servertransaction.ActivityResultItem.execute(ActivityResultItem.java:54)
at android.app.servertransaction.ActivityTransactionItem.execute(ActivityTransactionItem.java:45)
at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:135)
at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2341)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loopOnce(Looper.java:233)
at android.os.Looper.loop(Looper.java:344)
at android.app.ActivityThread.main(ActivityThread.java:8184)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:584)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1034)
Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'boolean android.os.Bundle.containsKey(java.lang.String)' on a null object reference
at android.view.autofill.AutofillManager.onAuthenticationResult(AutofillManager.java:1798)
at android.app.Activity.dispatchActivityResult(Activity.java:8494)
at android.app.ActivityThread.deliverResults(ActivityThread.java:5503)
```https://code.briarproject.org/briar/briar/-/issues/2331KeyStoreException: Invalid key blob2024-03-19T16:03:18ZakwizgranKeyStoreException: Invalid key blob* Android version: 11
* Phone model: Samsung SM-G970F (beyond0ltexx)
* Briar version: 1.4.5 (4df523a)
* User feedback: "I tried to login, entered my password and then Briar just crashed. I used this account before. But then I restored my...* Android version: 11
* Phone model: Samsung SM-G970F (beyond0ltexx)
* Briar version: 1.4.5 (4df523a)
* User feedback: "I tried to login, entered my password and then Briar just crashed. I used this account before. But then I restored my phone from the backup I made a month ago."
Log:
```
03-07 19:47:35.275 I/BriarApplicationImpl: Created
03-07 19:47:35.321 I/AccountManagerImpl: Found database key in primary file
03-07 19:47:39.685 I/BaseActivity: Creating SplashScreenActivity
03-07 19:47:39.700 I/BaseActivity: Starting SplashScreenActivity
03-07 19:47:39.702 I/BaseActivity: Resuming SplashScreenActivity
03-07 19:47:40.210 I/BaseActivity: Pausing SplashScreenActivity
03-07 19:47:40.222 I/BaseActivity: Creating NavDrawerActivity
03-07 19:47:40.266 I/BaseActivity: Starting NavDrawerActivity
03-07 19:47:40.270 I/BaseActivity: Resuming NavDrawerActivity
03-07 19:47:40.270 I/BriarActivity: Not signed in, launching StartupActivity
03-07 19:47:40.277 I/BaseActivity: Pausing NavDrawerActivity
03-07 19:47:40.282 I/BaseActivity: Creating StartupActivity
03-07 19:47:40.288 I/AccountManagerImpl: Found database key in primary file
03-07 19:47:40.289 I/BaseActivity: Starting StartupActivity
03-07 19:47:40.303 I/BaseActivity: Resuming StartupActivity
03-07 19:47:40.394 I/BaseActivity: Stopping NavDrawerActivity
03-07 19:47:40.803 I/BaseActivity: Stopping SplashScreenActivity
03-07 19:47:40.804 I/BaseActivity: Destroying SplashScreenActivity
03-07 19:47:47.649 I/AccountManagerImpl: Found database key in primary file
03-07 19:47:48.424 I/AndroidKeyStrengthener: Loaded key from keystore
```
Stacktrace:
```
java.lang.RuntimeException: java.security.InvalidKeyException: Keystore operation failed
at org.briarproject.briar.android.AndroidKeyStrengthener.strengthenKey(AndroidKeyStrengthener.java:101)
at org.briarproject.bramble.crypto.CryptoComponentImpl.decryptWithPassword(CryptoComponentImpl.java:412)
at org.briarproject.bramble.account.AccountManagerImpl.loadAndDecryptDatabaseKey(AccountManagerImpl.java:214)
at org.briarproject.bramble.account.AccountManagerImpl.signIn(AccountManagerImpl.java:200)
at org.briarproject.briar.android.login.StartupViewModel.lambda$validatePassword$0(StartupViewModel.java:112)
at org.briarproject.briar.android.login.StartupViewModel.$r8$lambda$5aurY1rQupylNVXCUST5DjfL1L4(Unknown Source:0)
at org.briarproject.briar.android.login.StartupViewModel$$ExternalSyntheticLambda0.run(Unknown Source:4)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
at java.lang.Thread.run(Thread.java:923)
Caused by: java.security.InvalidKeyException: Keystore operation failed
at android.security.KeyStore.getInvalidKeyException(KeyStore.java:1383)
at android.security.KeyStore.getInvalidKeyException(KeyStore.java:1393)
at android.security.keystore.KeyStoreCryptoOperationUtils.getInvalidKeyExceptionForInit(KeyStoreCryptoOperationUtils.java:54)
at android.security.keystore.AndroidKeyStoreHmacSpi.ensureKeystoreOperationInitialized(AndroidKeyStoreHmacSpi.java:184)
at android.security.keystore.AndroidKeyStoreHmacSpi.engineInit(AndroidKeyStoreHmacSpi.java:101)
at javax.crypto.Mac.chooseProvider(Mac.java:443)
at javax.crypto.Mac.init(Mac.java:513)
at org.briarproject.briar.android.AndroidKeyStrengthener.strengthenKey(AndroidKeyStrengthener.java:98)
... 9 more
Caused by: android.security.KeyStoreException: Invalid key blob
at android.security.KeyStore.getKeyStoreException(KeyStore.java:1306)
... 16 more
```Android 1.4https://code.briarproject.org/briar/briar/-/issues/2330NPE when getting IPv6 address for network interface2023-09-06T15:37:00ZakwizgranNPE when getting IPv6 address for network interface* Android version: 11
* Phone model: OnePlus HD1903 (OnePlus7T)
* Briar version: 1.4.6 (d5e17c8)
Stacktrace:
```
java.lang.NullPointerException: Attempt to read from field 'java.util.List java.net.NetworkInterface.childs' on a null obje...* Android version: 11
* Phone model: OnePlus HD1903 (OnePlus7T)
* Briar version: 1.4.6 (d5e17c8)
Stacktrace:
```
java.lang.NullPointerException: Attempt to read from field 'java.util.List java.net.NetworkInterface.childs' on a null object reference
at java.net.NetworkInterface.getAll(NetworkInterface.java:498)
at java.net.NetworkInterface.getByInetAddress(NetworkInterface.java:365)
at org.briarproject.bramble.plugin.tcp.AndroidLanTcpPlugin.getIpv6AddressForInterface(AndroidLanTcpPlugin.java:199)
at org.briarproject.bramble.plugin.tcp.AndroidLanTcpPlugin.getWifiAddress(AndroidLanTcpPlugin.java:125)
at org.briarproject.bramble.plugin.tcp.AndroidLanTcpPlugin.getUsableLocalInetAddresses(AndroidLanTcpPlugin.java:110)
at org.briarproject.bramble.plugin.tcp.LanTcpPlugin.getLocalSocketAddresses(LanTcpPlugin.java:140)
at org.briarproject.bramble.plugin.tcp.TcpPlugin.bind(TcpPlugin.java:159)
at org.briarproject.bramble.plugin.tcp.TcpPlugin.lambda$bind$0(TcpPlugin.java:152)
at org.briarproject.bramble.plugin.tcp.TcpPlugin.$r8$lambda$IG7OujafuxmUKGD9Z35IgV8DTwo(Unknown Source:0)
at org.briarproject.bramble.plugin.tcp.TcpPlugin$$ExternalSyntheticLambda0.run(Unknown Source:2)
at org.briarproject.bramble.PoliteExecutor.lambda$execute$0(PoliteExecutor.java:57)
at org.briarproject.bramble.PoliteExecutor.$r8$lambda$wSvuPL6t_HUoaaqCVexrhJX_RSg(Unknown Source:0)
at org.briarproject.bramble.PoliteExecutor$$ExternalSyntheticLambda0.run(Unknown Source:6)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
at java.lang.Thread.run(Thread.java:923)
```Android 1.4https://code.briarproject.org/briar/briar/-/issues/2329Translations for TrustIndicatorView trust levels2022-07-14T17:37:37Zjohndoe4221Translations for TrustIndicatorView trust levelsThe `TrustIndicatorView` can display 5 different trust levels:
- ANONYMOUS
- UNVERIFIED
- VERIFIED
- OURSELVES
- default
In order to implement features like #1052 and make the trust levels easier to understand we need descriptive trans...The `TrustIndicatorView` can display 5 different trust levels:
- ANONYMOUS
- UNVERIFIED
- VERIFIED
- OURSELVES
- default
In order to implement features like #1052 and make the trust levels easier to understand we need descriptive translations of trust levels and what they mean for a contact.
I suggest to create the translation keys:
- `contact_trust_level_anonymous`
- `contact_trust_level_unverified`
- `contact_trust_level_verified`
- `contact_trust_level_ourselves`
- `contact_trust_level_default`
The this can be used to show the symbolic trust level and the descriptive text side by side, e.g:
![trust_level_translation](/uploads/f7c70c4002729ffc3fbe5537b654b742/trust_level_translation.png)Android 1.4https://code.briarproject.org/briar/briar/-/issues/2328Crash when dragging and dropping in BlogActivity2022-06-09T16:11:35ZakwizgranCrash when dragging and dropping in BlogActivity* Android version: 10
* Phone model: DOOGEE S88Pro (S88Pro_EEA)
* Briar version: 1.4.5 (4df523a)
Last lines of log:
```
03-25 18:02:55.609 I/BaseActivity: Pausing NavDrawerActivity
03-25 18:02:55.623 I/BaseActivity: Creating BlogActivit...* Android version: 10
* Phone model: DOOGEE S88Pro (S88Pro_EEA)
* Briar version: 1.4.5 (4df523a)
Last lines of log:
```
03-25 18:02:55.609 I/BaseActivity: Pausing NavDrawerActivity
03-25 18:02:55.623 I/BaseActivity: Creating BlogActivity
03-25 18:02:55.640 I/BlogPostFragment: Adding Handler Callback
03-25 18:02:55.641 I/BaseActivity: Starting BlogActivity
03-25 18:02:55.641 I/BaseActivity: Resuming BlogActivity
03-25 18:02:56.113 I/BaseActivity: Stopping NavDrawerActivity
```
Stacktrace:
```
java.lang.IllegalStateException: Drag shadow dimensions must be positive
at android.view.View.startDragAndDrop(View.java:25599)
at android.widget.Editor.startDragAndDrop(Editor.java:1183)
at android.widget.Editor.performLongClick(Editor.java:1209)
at android.widget.TextView.performLongClick(TextView.java:12217)
at android.view.View.performLongClick(View.java:7211)
at android.view.View$CheckForLongPress.run(View.java:27500)
at android.os.Handler.handleCallback(Handler.java:883)
at android.os.Handler.dispatchMessage(Handler.java:100)
at android.os.Looper.loop(Looper.java:214)
at android.app.ActivityThread.main(ActivityThread.java:7386)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:492)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:980)
```
Looks like a platform bug so I'm not adding it to the current milestone.https://code.briarproject.org/briar/briar/-/issues/2327NPE when choosing notification sound2022-06-09T16:07:36ZakwizgranNPE when choosing notification sound* Android version: not provided
* Phone model: not provided
* Briar version: 1.4.5 (4df523a)
Stacktrace:
```
java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.Class java.lang.Object.getClass()' on a null object...* Android version: not provided
* Phone model: not provided
* Briar version: 1.4.5 (4df523a)
Stacktrace:
```
java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.Class java.lang.Object.getClass()' on a null object reference
at org.briarproject.briar.android.settings.NotificationsFragment.onNotificationSoundClicked(NotificationsFragment.java:218)
at org.briarproject.briar.android.settings.NotificationsFragment.lambda$onCreatePreferences$0(NotificationsFragment.java:108)
at org.briarproject.briar.android.settings.NotificationsFragment.$r8$lambda$tuVFVxovM6wElFyU0NWBFxLNE14(NotificationsFragment.java)
at org.briarproject.briar.android.settings.NotificationsFragment$$ExternalSyntheticLambda6.onPreferenceClick(Unknown Source)
at androidx.preference.Preference.performClick(Preference.java:1184)
at androidx.preference.Preference.performClick(Preference.java:1166)
at androidx.preference.Preference$1.onClick(Preference.java:181)
at android.view.View.performClick(View.java:5265)
at android.view.View$PerformClick.run(View.java:21534)
at android.os.Handler.handleCallback(Handler.java:815)
at android.os.Handler.dispatchMessage(Handler.java:104)
at android.os.Looper.loop(Looper.java:207)
at android.app.ActivityThread.main(ActivityThread.java:5765)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:789)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:679)
```
Looks like the UI assumes the value of the `notifySound` LiveData will have been set, but it's not set until the settings have been loaded.
I thought we used to disable the UI until the settings were loaded, to avoid bugs like this. Maybe that was lost when we restructured the settings UI?Android 1.4https://code.briarproject.org/briar/briar/-/issues/2326Briar's mailbox status screen should fetch the mailbox's supported API versions2022-06-14T12:29:48ZakwizgranBriar's mailbox status screen should fetch the mailbox's supported API versionsBriar's mailbox status screen uses the `status` API endpoint for its connectivity check. Let's use the `versions` endpoint instead, so that if we've warned the user that Briar and the Mailbox are using incompatible API versions, and the ...Briar's mailbox status screen uses the `status` API endpoint for its connectivity check. Let's use the `versions` endpoint instead, so that if we've warned the user that Briar and the Mailbox are using incompatible API versions, and the user has upgraded one of the apps to fix the issue, the user can use the "check connection" button in the status screen to check that the issue has been fixed.
(This is specifically needed for the case where the user has upgraded the Mailbox, because in the case where the user has upgraded Briar, Briar should automatically check the mailbox's API versions when it comes back online after upgrading.)Mailbox: Status UI for Briar appTorsten GroteTorsten Grotehttps://code.briarproject.org/briar/briar/-/issues/2325Tor stops launching OR connections2022-06-06T14:43:27ZakwizgranTor stops launching OR connections* Android version: 12 (CalyxOS 3.5.1)
* Phone model: Pixel 3a
* Briar version: 1.4.8 (4623d03c937e176f81fcfbc40a909c6932ccafe0)
While smoke testing the 1.4.8 release I was quickly toggling the Tor settings (enabling/disabling Tor, enabl...* Android version: 12 (CalyxOS 3.5.1)
* Phone model: Pixel 3a
* Briar version: 1.4.8 (4623d03c937e176f81fcfbc40a909c6932ccafe0)
While smoke testing the 1.4.8 release I was quickly toggling the Tor settings (enabling/disabling Tor, enabling/disabling bridges, enabling/disabling Tor on battery) when Tor got stuck in the ENABLING state.
This bug seems to be distinct from #2324. Tor is still responding to control port commands, but it's failing to launch any OR connections to bridges. Unlike #2324, the Tor plugin shuts down normally.
Log: [pixel-3a-no-or-connections.txt](/uploads/eb9af1ae05c65a9e945708a8103904dc/pixel-3a-no-or-connections.txt)
The log shows that between 11:11:15 and 11:11:19 I disabled and re-enabled Tor several times with bridges enabled. At 11:11:15.283 I disabled Tor, and as expected the existing OR connections were closed. At 11:11:15.518 I re-enabled Tor but no OR connections were launched. I kept disabling and re-enabling Tor with bridges enabled, without any OR connections being launched. At 11:15:14.774 I disabled bridges. Tor then launched OR connections as expected and connected to the network.
At 11:15:20.020 I re-enabled bridges. At 11:15:27.927 I disabled Tor, and as expected the existing OR connections were closed. At 11:15:32.090 I re-enabled Tor and once again, no OR connections were launched. At 11:16:46.614 I disabled bridges, and once again this caused Tor to launch OR connections and connect to the network.
Later I was able to trigger the bug again on the same device by enabling bridges, then repeatedly disabling and re-enabling Tor. But I couldn't reproduce the bug on another device.
Log: [pixel-3a-no-or-connections-again.txt](/uploads/92cd2a0265f8816a0e43acec940c43bc/pixel-3a-no-or-connections-again.txt)
The second log contains the message "Ignoring directory request, since no bridge nodes are available yet", which isn't present in the first log.
Later I relaunched the app from AS to rule out the possibility of the `bridges` resource not having been included in the APK. After relaunching I didn't immediately manage to reproduce the bug by enabling bridges and repeatedly disabling and re-enabling Tor. But after disabling and re-enabling bridges a few times as well as disabling and re-enabling Tor, I saw the bug again.
Log: [pixel-3a-no-or-connections-yet-again.txt](/uploads/4f0e60b6cd7ffd7414a38ab125fc4cf6/pixel-3a-no-or-connections-yet-again.txt)
The third log contains a new message that wasn't present in the previous logs: "Application request when we haven't used client functionality lately. Optimistically trying known bridges again." This might suggest that Tor is deliberately not launching OR connections because it thinks the bridges are unavailable - perhaps due to previous connection failures caused by disabling and re-enabling Tor and/or bridges?https://code.briarproject.org/briar/briar/-/issues/2324Tor stops responding to control port2022-06-06T14:40:46ZakwizgranTor stops responding to control port* Android version: 9
* Phone model: Motorola Moto E6 Play
* Briar version: 1.4.8 (4623d03c937e176f81fcfbc40a909c6932ccafe0)
While smoke testing the 1.4.8 release I was quickly toggling the Tor settings (enabling/disabling Tor, enabling/...* Android version: 9
* Phone model: Motorola Moto E6 Play
* Briar version: 1.4.8 (4623d03c937e176f81fcfbc40a909c6932ccafe0)
While smoke testing the 1.4.8 release I was quickly toggling the Tor settings (enabling/disabling Tor, enabling/disabling bridges, enabling/disabling Tor on battery) when Briar stopped responding to changes in the Tor settings.
After this happened, each time I changed the settings the Tor plugin still logged "Tor settings updated", indicating that the new settings had been written to the DB and detected by the plugin. But the usual log messages that would follow from updateConnectionStatus() didn't appear.
When I signed out, the plugin logged "Stopping Tor" but then the stop() method didn't return. Eventually I had to force-stop the app.
I spent a long time trying to reproduce the bug, but wasn't able to.
At first I suspected the problem might be caused by the PoliteExecutor that runs the lambdas created by updateConnectionStatus(), but that executor isn't used when stopping Tor. The fact that the stop() method didn't return suggests that the problem is either in jtorctl or in Tor itself (I think a bug in jtorctl is more likely).
Log: [moto-e6-tor-settings-updated.txt](/uploads/aaf30977794c5b935de8e1d5a53d955f/moto-e6-tor-settings-updated.txt)
Before the bug happened, the TorPlugin was logging some long queue times for tasks running on the PoliteExecutor, so in some cases the settings were being changed again before the previous changes had been applied to Tor. But this on its own isn't enough to reproduce the bug: adding a sleep to the end of the lambda created by updateConnectionStatus() caused long queue times but didn't trigger the bug.https://code.briarproject.org/briar/briar/-/issues/2323Missing blanks in the german translation for auto delete messages2022-07-13T11:18:27Zjohndoe4221Missing blanks in the german translation for auto delete messagesThe german translation for the _auto_delete_msg_you_enabled_ and _auto_delete_msg_contact_enabled_ doesn't use blanks around a variable substitution. This leads to an unwanted concatenation of words in the final translation:
![eb99964a-...The german translation for the _auto_delete_msg_you_enabled_ and _auto_delete_msg_contact_enabled_ doesn't use blanks around a variable substitution. This leads to an unwanted concatenation of words in the final translation:
![eb99964a-c8cb-4716-b235-248a4eb8dd6a](/uploads/5fce55092dce358f5c49bc6c1b8b0add/eb99964a-c8cb-4716-b235-248a4eb8dd6a.jpg)https://code.briarproject.org/briar/briar/-/issues/2322When Tor not active, adding a RSS feed fails with unclear error message2022-10-11T12:02:07ZAminda SuomalainenWhen Tor not active, adding a RSS feed fails with unclear error messageIf the option to connect to internet only when charging is set, feeds cannot be added or there will be an error message (which content I don't have at hand, but doesn't clearly tell what the issue is) and suggests trying again, which wil...If the option to connect to internet only when charging is set, feeds cannot be added or there will be an error message (which content I don't have at hand, but doesn't clearly tell what the issue is) and suggests trying again, which will result to the same problem.
The solution is to either uncheck the option or put the phone to charge and it will be able to add feeds without issues.
I think https://code.briarproject.org/briar/briar/-/issues/2247 would be a potential solution to this, but having the error message say that connecting to internet or unchecking the box is required.
Briar 1.4.7 (more device details in #2321)https://code.briarproject.org/briar/briar/-/issues/2321Deduplicate RSS feeds2022-06-03T18:21:42ZAminda SuomalainenDeduplicate RSS feedsWhen two users add an RSS feed and share it to each other, Briar doesn't detect it to be the same and shows everything twice in Blogs. I think Briar should notice that they are the same and at least hide the duplicate from user.
I am al...When two users add an RSS feed and share it to each other, Briar doesn't detect it to be the same and shows everything twice in Blogs. I think Briar should notice that they are the same and at least hide the duplicate from user.
I am also unclear on whether both devices are able to check the feed for updates or if it only updates when the device originally adding the feed checks it.
Reproducing:
1. Add a feed
2. Share the feed to another device/user
3. Accept the share on another device
4. Also manually add the same feed
5. Possibly share it to the first device
6. After accepting, both users see the same.
I am using `Briar 1.4.7` from F-Droid (I guess as Android reports the source to be "Package installer") on Android 10 Go Edition (Nokia 1 TA-1047). The other device is 1.4.7 from Aurora Store on SailfishOS Android Support that pretends to be Android 10 on Xperia 10 II (but due to not being real Android has random unrelated issues).https://code.briarproject.org/briar/briar/-/issues/2320FormatException when loading mailbox API version metadata2022-06-01T11:39:08ZakwizgranFormatException when loading mailbox API version metadataMailboxIvanaIvanahttps://code.briarproject.org/briar/briar/-/issues/2319Show warning if own mailbox's API version is incompatible2022-11-23T12:10:47ZakwizgranShow warning if own mailbox's API version is incompatibleShow a warning in the mailbox status screen if the API versions supported by our mailbox are incompatible with the versions we support as a client.
The warning could either ask the user to check that Briar and the Mailbox are updated to...Show a warning in the mailbox status screen if the API versions supported by our mailbox are incompatible with the versions we support as a client.
The warning could either ask the user to check that Briar and the Mailbox are updated to the latest version, or if we want to be clever we could work out which one needs to be updated and show an appropriate message.
Depends on #2299Mailbox: Status UI for Briar appTorsten GroteTorsten Grotehttps://code.briarproject.org/briar/briar/-/issues/2318Crash on HTC One M9 when switching between the briar app and the settings ap...2023-01-25T17:23:06ZIvanaCrash on HTC One M9 when switching between the briar app and the settings app in the foregroundSteps to reproduce
- Install Briar and create a user account
- user is asked to "allow connections" (ie allow battery optimisation to be switched off)
- before tapping the "allow connections" button, go to settings app and verify that...Steps to reproduce
- Install Briar and create a user account
- user is asked to "allow connections" (ie allow battery optimisation to be switched off)
- before tapping the "allow connections" button, go to settings app and verify that the battery optimisation is 'on' (although probabky not relevant for this crash)
- then bring briar app back into the foreground tap the "allow connections"
- go to settings
- bring briar back into the foreground -> crash.
This as reproduced 2 times on HTC One M9 (android 7) and it doesn't have when the user performs the same steps with mailbox app.
Logfiles are attached
@akwizgran analysed and here are his comments (from MM)
looks like this is the stacktrace of the crash:
org.briarproject.briar.android.account.SetupActivity}: java.lang.RuntimeException: Parcel android.os.Parcel@7c94038: Unmarshalling unknown type code 6881391 at offset 684
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2729)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2790)
at android.app.ActivityThread.-wrap12(ActivityThread.java)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1505)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:173)
at android.app.ActivityThread.main(ActivityThread.java:6523)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:938)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:828)
Caused by: java.lang.RuntimeException: Parcel android.os.Parcel@7c94038: Unmarshalling unknown type code 6881391 at offset 684
at android.os.Parcel.readValue(Parcel.java:2452)
at android.os.Parcel.readSparseArrayInternal(Parcel.java:2807)
at android.os.Parcel.readSparseArray(Parcel.java:2076)
at android.os.Parcel.readValue(Parcel.java:2430)
at android.os.Parcel.readArrayMapInternal(Parcel.java:2726)
at android.os.BaseBundle.unparcel(BaseBundle.java:269)
at android.os.Bundle.getSparseParcelableArray(Bundle.java:910)
at androidx.fragment.app.FragmentStateManager.restoreState(FragmentStateManager.java:405)
at androidx.fragment.app.FragmentManager.restoreSaveState(FragmentManager.java:2735)
at androidx.fragment.app.FragmentController.restoreSaveState(FragmentController.java:198)
at androidx.fragment.app.FragmentActivity$2.onContextAvailable(FragmentActivity.java:149)
at androidx.activity.contextaware.ContextAwareHelper.dispatchOnContextAvailable(ContextAwareHelper.java:99)
at androidx.activity.ComponentActivity.onCreate(ComponentActivity.java:297)
at androidx.fragment.app.FragmentActivity.onCreate(FragmentActivity.java:273)
at androidx.appcompat.app.AppCompatActivity.onCreate(AppCompatActivity.java:115)
at org.briarproject.briar.android.activity.BaseActivity.onCreate(BaseActivity.java:92)
at org.briarproject.briar.android.account.SetupActivity.onCreate(SetupActivity.java:52)
at android.app.Activity.performCreate(Activity.java:6673)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1136)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2682)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2790)
at android.app.ActivityThread.-wrap12(ActivityThread.java)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1505)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:173)
at android.app.ActivityThread.main(ActivityThread.java:6523)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:938)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:828) [Briar_crash_11_May_2022_reproduced.txt](/uploads/ddad5db164d4d61b49a3ac11b70d9394/Briar_crash_11_May_2022_reproduced.txt)
[Briar_crash_11_May_2022.txt](/uploads/920b2d55e162d999725a2f03d704348a/Briar_crash_11_May_2022.txt)