briar issueshttps://code.briarproject.org/groups/briar/-/issues2023-06-20T09:23:38Zhttps://code.briarproject.org/briar/briar-desktop/-/issues/526Messages are not received via Mailbox2023-06-20T09:23:38ZMikolai GütschowMessages are not received via MailboxI've tried the following setup:
- Briar Desktop (current main) with a temporary account
- Briar Mailbox (v1.0.5) on an Android phone
- Briar Android (v1.5.1) on the same Android phone
Steps to reproduce:
1. Connect Briar Desktop with Br...I've tried the following setup:
- Briar Desktop (current main) with a temporary account
- Briar Mailbox (v1.0.5) on an Android phone
- Briar Android (v1.5.1) on the same Android phone
Steps to reproduce:
1. Connect Briar Desktop with Briar Mailbox
2. Add Briar Android as remote contact on Briar Desktop
3. Exchange some private messages
4. Disable Internet for Briar Desktop (in system-wide settings)
5. Send messages from Briar Android to Briar Desktop
6. notice that the messages is marked with the "scheduled" icon
7. Navigate out of the chat and back in
8. notice that the messages are now marked with one "checkmark" icon (I assume this means they have been sent to *somewhere*, probably the Mailbox?)
9. Go offline in Briar Android (disable all connections in app settings)
10. Re-enable internet for Briar Desktop
11. notice that nothing happens (the messages are not received)
12. make sure Mailbox is connected with successful connection check from Briar Desktop
Also, sending messages from Briar Desktop to Briar Android (with no own mailbox connected) doesn't work, the messages stay marked as scheduled. Am I right that it should also work in that direction in theory?Desktop 0.5.0Torsten GroteTorsten Grotehttps://code.briarproject.org/briar/briar-desktop/-/issues/525Dissolved groups look the same in group list2023-05-31T16:05:29ZTorsten GroteDissolved groups look the same in group listOn Android dissolved groups look different in the list:
![Screenshot_20230523-105923](/uploads/516e7d30fa54a270b43070eecd3dbd5f/Screenshot_20230523-105923.png){width=40%}On Android dissolved groups look different in the list:
![Screenshot_20230523-105923](/uploads/516e7d30fa54a270b43070eecd3dbd5f/Screenshot_20230523-105923.png){width=40%}Desktop 0.5.0Mikolai GütschowMikolai Gütschowhttps://code.briarproject.org/briar/briar-desktop/-/issues/524Contact can't be invited: Not supported by this contact2023-08-23T07:56:12ZTorsten GroteContact can't be invited: Not supported by this contactSteps to reproduce:
1) Add a new contact
2) exchange some messages
3) try inviting to a private group: Boom!
Normally, it can take some time for client versioning info to be exchanged which can cause this message early on, but here it ...Steps to reproduce:
1) Add a new contact
2) exchange some messages
3) try inviting to a private group: Boom!
Normally, it can take some time for client versioning info to be exchanged which can cause this message early on, but here it seems we receive the messages, but don't update the contact state:
```
2023-05-23 10:50:49,512 [pool-1-thread-22] INFO o.b.b.s.v.ValidationManagerImpl - Validating message for org.briarproject.bramble.versioning
2023-05-23 10:52:00,827 [pool-1-thread-16] INFO o.b.b.s.v.ValidationManagerImpl - Delivering message for org.briarproject.briar.privategroup
2023-05-23 10:52:00,831 [pool-1-thread-16] INFO o.b.b.s.v.ValidationManagerImpl - Delivering message for org.briarproject.briar.privategroup.invitation
```
This happens even after 10min and after we were already invited to private groups by that contact.Desktop 0.6.0Mikolai GütschowMikolai Gütschowhttps://code.briarproject.org/briar/briar-desktop/-/issues/523Feature request: mark as un/read button2023-06-17T20:28:59ZAminda SuomalainenFeature request: mark as un/read buttonCurrently the only way to mark something as read is to stare for it for a moment and then scroll down and wait a moment again. This takes a long time especially when there are many unreads in a forum and feels annoying when I have alread...Currently the only way to mark something as read is to stare for it for a moment and then scroll down and wait a moment again. This takes a long time especially when there are many unreads in a forum and feels annoying when I have already read the forums on another device. Thus I would like there to be buttons to:
* [ ] mark chat as read
* [ ] mark chat as unread, in case there is something I would like to return to later and have the UI remind me of it with the unread marker.Desktop 0.5.0Mikolai GütschowMikolai Gütschowhttps://code.briarproject.org/briar/briar-mailbox/-/issues/193Handle unchecking all bridges2023-05-17T11:34:12ZTorsten GroteHandle unchecking all bridgeshttps://code.briarproject.org/briar/briar-mailbox/-/merge_requests/169#note_76780https://code.briarproject.org/briar/briar-mailbox/-/merge_requests/169#note_76780Torsten GroteTorsten Grotehttps://code.briarproject.org/briar/onionwrapper/-/issues/10Calling start() moves state to CONNECTING2023-05-16T16:11:21ZTorsten GroteCalling start() moves state to CONNECTINGThe expected behavior is to go from `STARTING_STOPPING` to `DISABLED` it seems, which does seem a bit weird from an external library user perspective to be honest.The expected behavior is to go from `STARTING_STOPPING` to `DISABLED` it seems, which does seem a bit weird from an external library user perspective to be honest.akwizgranakwizgranhttps://code.briarproject.org/briar/onionwrapper/-/issues/9Add method for getting Country name to location utils2023-05-12T14:58:38ZTorsten GroteAdd method for getting Country name to location utils```kotlin
val currentCountry: String
get() = Locale.getAvailableLocales().find { locale ->
locale.country.equals(currentCountry, ignoreCase = true)
}?.displayCountry ?: currentCountry
``````kotlin
val currentCountry: String
get() = Locale.getAvailableLocales().find { locale ->
locale.country.equals(currentCountry, ignoreCase = true)
}?.displayCountry ?: currentCountry
```Torsten GroteTorsten Grotehttps://code.briarproject.org/briar/briar-desktop/-/issues/520Include date in logs instead of just the time of day2023-05-08T14:12:24ZSebastianInclude date in logs instead of just the time of dayA user reported that it's difficult to make sense of logs if the date is missing. I can see the point.A user reported that it's difficult to make sense of logs if the date is missing. I can see the point.SebastianSebastianhttps://code.briarproject.org/briar/briar-desktop/-/issues/518Private groups: Sharing information in header is not updated after group leav...2023-05-11T21:21:59ZMikolai GütschowPrivate groups: Sharing information in header is not updated after group leave/dissolveNot sure if it is supposed to, but after the group is dissolved, it is still shown as "shared with 1". This should be double-checked with Android behavior.
![image](/uploads/a947ece60b3e2184238de9a72e12ed63/image.png)
Similar issue aft...Not sure if it is supposed to, but after the group is dissolved, it is still shown as "shared with 1". This should be double-checked with Android behavior.
![image](/uploads/a947ece60b3e2184238de9a72e12ed63/image.png)
Similar issue after a contact leaves a private group: the owner still sees them as a member and shows the private group as shared with them. Maybe at least this is actually intended behavior though.
Maybe someone can comment on this @sebkur or @grote ?Desktop 0.5.0Mikolai GütschowMikolai Gütschowhttps://code.briarproject.org/briar/onionwrapper/-/issues/8Reset bridges if enabling bridges with empty list2023-05-12T16:52:30ZTorsten GroteReset bridges if enabling bridges with empty list`enableBridges()` to call `resetConf("Bridge")` if bridge list is empty.`enableBridges()` to call `resetConf("Bridge")` if bridge list is empty.Torsten GroteTorsten Grotehttps://code.briarproject.org/briar/onionwrapper/-/issues/7Include AndroidLocationUtils in onionwrapper-android2023-05-10T17:24:41ZTorsten GroteInclude AndroidLocationUtils in onionwrapper-androidThe location is needed for the API, so we might as well include a tool to get it.The location is needed for the API, so we might as well include a tool to get it.Torsten GroteTorsten Grotehttps://code.briarproject.org/briar/onionwrapper/-/issues/6Unintuitive API: TorWrapper#start() doesn't actually start, unless enableNetw...2023-05-10T17:24:32ZTorsten GroteUnintuitive API: TorWrapper#start() doesn't actually start, unless enableNetwork() get calledYou call `TorWrapper#start()` and expect things to work. There's some JavaDoc somewhere that enableNetwork() is needed, but not really easy to find.You call `TorWrapper#start()` and expect things to work. There's some JavaDoc somewhere that enableNetwork() is needed, but not really easy to find.https://code.briarproject.org/briar/onionwrapper/-/issues/5Expose location of obfs4Executable for use with Moat2023-05-10T17:24:23ZTorsten GroteExpose location of obfs4Executable for use with MoatOur moat library needs a obfs4Executable to work with. Currently, there's no way to get this.Our moat library needs a obfs4Executable to work with. Currently, there's no way to get this.https://code.briarproject.org/briar/onionwrapper/-/issues/4TorState distinguish stopping from stopped2023-05-16T16:11:21ZTorsten GroteTorState distinguish stopping from stoppedThis may be needed to not start a new instance of TorWrapper, before the old one has stopped.
The wrapper already has code that waits for the tor process to exit, so hopefully we can use that to distinguish stopping from stopped.This may be needed to not start a new instance of TorWrapper, before the old one has stopped.
The wrapper already has code that waits for the tor process to exit, so hopefully we can use that to distinguish stopping from stopped.akwizgranakwizgranhttps://code.briarproject.org/briar/onionwrapper/-/issues/3TorState distinguish stopping/stopped from starting2023-05-16T16:11:21ZTorsten GroteTorState distinguish stopping/stopped from startingCurrently, in state terms those are the same while they are really different in practice.Currently, in state terms those are the same while they are really different in practice.akwizgranakwizgranhttps://code.briarproject.org/briar/onionwrapper/-/issues/2Package private implementation hard to use2023-05-10T17:25:59ZTorsten GrotePackage private implementation hard to use`AndroidWakeLockManagerImpl` and `CircumventionProviderImpl` are both package-private, so they require some hoops to jump through to be used.
we could add a factory method for that, perhaps?
A public factory for `AndroidWakeLockManage...`AndroidWakeLockManagerImpl` and `CircumventionProviderImpl` are both package-private, so they require some hoops to jump through to be used.
we could add a factory method for that, perhaps?
A public factory for `AndroidWakeLockManager`, maybe with two methods, one allows passing in your own `ScheduledExecutorService`, the other provides a default one?Torsten GroteTorsten Grotehttps://code.briarproject.org/briar/onionwrapper/-/issues/1`android` isn't pulling in `core` as transitive dependency2023-05-10T17:25:53ZTorsten Grote`android` isn't pulling in `core` as transitive dependencylooks like org.briarproject:onionwrapper-android is not pulling in core as a transitive dependency.
without core:
```
error: InjectProcessingStep was unable to process 'org.briarproject.onionwrapper.TorWrapper' because 'org.briarproject...looks like org.briarproject:onionwrapper-android is not pulling in core as a transitive dependency.
without core:
```
error: InjectProcessingStep was unable to process 'org.briarproject.onionwrapper.TorWrapper' because 'org.briarproject.onionwrapper.TorWrapper' could not be resolved.
```
Maybe this is `api` vs. `implementation` in gradle dependency terms?Torsten GroteTorsten Grotehttps://code.briarproject.org/briar/briar-desktop/-/issues/517Cannot write to /dev/urandom on macOS2023-04-19T14:32:15ZSebastianCannot write to /dev/urandom on macOSGetting this stacktrace on the log:
```
16:25:45.465 [main] INFO o.b.b.crypto.CryptoComponentImpl - Default SecureRandom: SUN NativePRNG
16:25:45.467 [main] WARN o.b.b.s.UnixSecureRandomProvider - java.io.IOException: Operation not pe...Getting this stacktrace on the log:
```
16:25:45.465 [main] INFO o.b.b.crypto.CryptoComponentImpl - Default SecureRandom: SUN NativePRNG
16:25:45.467 [main] WARN o.b.b.s.UnixSecureRandomProvider - java.io.IOException: Operation not permitted
java.io.IOException: Operation not permitted
at java.base/java.io.FileOutputStream.writeBytes(Native Method)
at java.base/java.io.FileOutputStream.write(FileOutputStream.java:349)
at java.base/java.io.DataOutputStream.writeLong(DataOutputStream.java:230)
at org.briarproject.bramble.system.AbstractSecureRandomProvider.writeToEntropyPool(AbstractSecureRandomProvider.java:24)
at org.briarproject.bramble.system.UnixSecureRandomProvider.writeSeed(UnixSecureRandomProvider.java:49)
at org.briarproject.bramble.system.UnixSecureRandomProvider.getProvider(UnixSecureRandomProvider.java:41)
at org.briarproject.bramble.crypto.CryptoComponentImpl.<init>(CryptoComponentImpl.java:85)
at org.briarproject.bramble.crypto.CryptoModule.provideCryptoComponent(CryptoModule.java:32)
at org.briarproject.bramble.crypto.CryptoModule_ProvideCryptoComponentFactory.provideCryptoComponent(CryptoModule_ProvideCryptoComponentFactory.java:48)
at org.briarproject.bramble.crypto.CryptoModule_ProvideCryptoComponentFactory.get(CryptoModule_ProvideCryptoComponentFactory.java:37)
at org.briarproject.bramble.crypto.CryptoModule_ProvideCryptoComponentFactory.get(CryptoModule_ProvideCryptoComponentFactory.java:13)
at dagger.internal.DoubleCheck.get(DoubleCheck.java:47)
at org.briarproject.bramble.sync.MessageFactoryImpl_Factory.get(MessageFactoryImpl_Factory.java:27)
at org.briarproject.bramble.sync.MessageFactoryImpl_Factory.get(MessageFactoryImpl_Factory.java:11)
at org.briarproject.bramble.sync.SyncModule_ProvideMessageFactoryFactory.get(SyncModule_ProvideMessageFactoryFactory.java:32)
at org.briarproject.bramble.sync.SyncModule_ProvideMessageFactoryFactory.get(SyncModule_ProvideMessageFactoryFactory.java:12)
at org.briarproject.bramble.db.DatabaseModule_ProvideDatabaseFactory.get(DatabaseModule_ProvideDatabaseFactory.java:42)
at org.briarproject.bramble.db.DatabaseModule_ProvideDatabaseFactory.get(DatabaseModule_ProvideDatabaseFactory.java:15)
at dagger.internal.DoubleCheck.get(DoubleCheck.java:47)
at org.briarproject.bramble.db.DatabaseModule_ProvideDatabaseComponentFactory.get(DatabaseModule_ProvideDatabaseComponentFactory.java:46)
at org.briarproject.bramble.db.DatabaseModule_ProvideDatabaseComponentFactory.get(DatabaseModule_ProvideDatabaseComponentFactory.java:16)
at dagger.internal.DoubleCheck.get(DoubleCheck.java:47)
at org.briarproject.bramble.lifecycle.LifecycleManagerImpl_Factory.get(LifecycleManagerImpl_Factory.java:36)
at org.briarproject.bramble.lifecycle.LifecycleManagerImpl_Factory.get(LifecycleManagerImpl_Factory.java:13)
at org.briarproject.bramble.lifecycle.LifecycleModule_ProvideLifecycleManagerFactory.get(LifecycleModule_ProvideLifecycleManagerFactory.java:32)
at org.briarproject.bramble.lifecycle.LifecycleModule_ProvideLifecycleManagerFactory.get(LifecycleModule_ProvideLifecycleManagerFactory.java:12)
at dagger.internal.DoubleCheck.get(DoubleCheck.java:47)
at org.briarproject.bramble.cleanup.CleanupModule_ProvideCleanupManagerFactory.get(CleanupModule_ProvideCleanupManagerFactory.java:41)
at org.briarproject.bramble.cleanup.CleanupModule_ProvideCleanupManagerFactory.get(CleanupModule_ProvideCleanupManagerFactory.java:14)
at dagger.internal.DoubleCheck.get(DoubleCheck.java:47)
at org.briarproject.briar.desktop.DaggerBriarDesktopTestApp.injectEagerSingletons(DaggerBriarDesktopTestApp.java:1943)
at org.briarproject.briar.desktop.DaggerBriarDesktopTestApp.inject(DaggerBriarDesktopTestApp.java:1751)
at org.briarproject.bramble.BrambleCoreEagerSingletons$Helper.injectEagerSingletons(BrambleCoreEagerSingletons.java:51)
at org.briarproject.briar.desktop.RunWithTemporaryAccount.run(RunWithTemporaryAccount.kt:77)
at org.briarproject.briar.desktop.TestDeterministicConversationsKt.main(TestDeterministicConversations.kt:25)
at org.briarproject.briar.desktop.TestDeterministicConversationsKt.main(TestDeterministicConversations.kt)
16:25:45.519 [main] INFO o.b.b.crypto.CryptoComponentImpl - Installed SecureRandom: UnixPRNG SHA1PRNG
```https://code.briarproject.org/briar/briar/-/issues/2429SecurityException: Permission Denial for CLOSE_SYSTEM_DIALOGS2023-04-18T15:39:33ZakwizgranSecurityException: Permission Denial for CLOSE_SYSTEM_DIALOGS* Android version: 12
* Phone model: Google Pixel 3 XL (crosshatch)
* Briar version: 1.4.23 (070165f)
* User feedback: "I wrote a message, then Briar shut down. This also happens frequently to other apps."
Stacktrace:
```
java.lang.Secu...* Android version: 12
* Phone model: Google Pixel 3 XL (crosshatch)
* Briar version: 1.4.23 (070165f)
* User feedback: "I wrote a message, then Briar shut down. This also happens frequently to other apps."
Stacktrace:
```
java.lang.SecurityException: Permission Denial: android.intent.action.CLOSE_SYSTEM_DIALOGS broadcast from org.briarproject.briar.android (pid=24174, uid=10004) requires android.permission.BROADCAST_CLOSE_SYSTEM_DIALOGS.
at android.os.Parcel.createExceptionOrNull(Parcel.java:2425)
at android.os.Parcel.createException(Parcel.java:2409)
at android.os.Parcel.readException(Parcel.java:2392)
at android.os.Parcel.readException(Parcel.java:2334)
at android.app.IActivityManager$Stub$Proxy.closeSystemDialogs(IActivityManager.java:7614)
at com.android.internal.policy.PhoneWindow.sendCloseSystemWindows(PhoneWindow.java:3791)
at com.android.internal.policy.PhoneFallbackEventHandler.sendCloseSystemWindows(PhoneFallbackEventHandler.java:323)
at com.android.internal.policy.PhoneFallbackEventHandler.startCallActivity(PhoneFallbackEventHandler.java:275)
at com.android.internal.policy.PhoneFallbackEventHandler.onKeyUp(PhoneFallbackEventHandler.java:261)
at com.android.internal.policy.PhoneFallbackEventHandler.dispatchKeyEvent(PhoneFallbackEventHandler.java:76)
at android.view.ViewRootImpl$ViewPostImeInputStage.processKeyEvent(ViewRootImpl.java:6317)
at android.view.ViewRootImpl$ViewPostImeInputStage.onProcess(ViewRootImpl.java:6141)
at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:5623)
at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:5680)
at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:5646)
at android.view.ViewRootImpl$AsyncInputStage.forward(ViewRootImpl.java:5811)
at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:5654)
at android.view.ViewRootImpl$AsyncInputStage.apply(ViewRootImpl.java:5868)
at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:5627)
at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:5680)
at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:5646)
at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:5654)
at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:5627)
at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:5680)
at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:5646)
at android.view.ViewRootImpl$AsyncInputStage.forward(ViewRootImpl.java:5844)
at android.view.ViewRootImpl$ImeInputStage.onFinishedInputEvent(ViewRootImpl.java:6002)
at android.view.inputmethod.InputMethodManager$PendingEvent.run(InputMethodManager.java:3158)
at android.view.inputmethod.InputMethodManager.invokeFinishedInputEventCallback(InputMethodManager.java:2722)
at android.view.inputmethod.InputMethodManager.finishedInputEvent(InputMethodManager.java:2713)
at android.view.inputmethod.InputMethodManager$ImeInputEventSender.onInputEventFinished(InputMethodManager.java:3135)
at android.view.InputEventSender.dispatchInputEventFinished(InputEventSender.java:154)
at android.os.MessageQueue.nativePollOnce(Native Method)
at android.os.MessageQueue.next(MessageQueue.java:335)
at android.os.Looper.loopOnce(Looper.java:161)
at android.os.Looper.loop(Looper.java:288)
at android.app.ActivityThread.main(ActivityThread.java:7842)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:548)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1003)
Caused by: android.os.RemoteException: Remote stack trace:
at com.android.server.wm.ActivityTaskManagerService.checkCanCloseSystemDialogs(ActivityTaskManagerService.java:2955)
at com.android.server.wm.ActivityTaskManagerService.access$900(ActivityTaskManagerService.java:294)
at com.android.server.wm.ActivityTaskManagerService$LocalService.checkCanCloseSystemDialogs(ActivityTaskManagerService.java:5309)
at com.android.server.wm.ActivityTaskManagerService$LocalService.closeSystemDialogs(ActivityTaskManagerService.java:5783)
at com.android.server.am.ActivityManagerService.closeSystemDialogs(ActivityManagerService.java:3800)
```
Edited log:
```
04-02 10:16:30.039 I/BaseActivity: Starting ConversationActivity
04-02 10:16:30.041 I/BaseActivity: Resuming ConversationActivity
04-02 10:16:32.999 I/AutoDeleteManagerImpl: Sending message with auto-delete timer 604800000
04-02 10:16:33.045 I/DuplexOutgoingSession: Next send time decreased
04-02 10:16:33.052 I/DuplexOutgoingSession: Generated offer: true
04-02 10:16:33.052 I/DuplexOutgoingSession: Sent offer
04-02 10:16:33.061 I/DuplexOutgoingSession: Generated offer: false
04-02 10:16:33.495 I/DuplexOutgoingSession: Generated batch: true
04-02 10:16:33.495 I/ConversationActivity: Messages sent
04-02 10:16:33.495 I/DuplexOutgoingSession: Sent batch
04-02 10:16:33.504 I/DuplexOutgoingSession: Generated batch: false
04-02 10:16:34.069 I/ConversationActivity: Messages acked
04-02 10:16:42.127 I/DuplexOutgoingSession: Generated request: true
04-02 10:16:42.127 I/DuplexOutgoingSession: Sent request
04-02 10:16:42.128 I/DuplexOutgoingSession: Generated request: false
04-02 10:16:42.743 I/ValidationManagerImpl: Validating message for org.briarproject.briar.messaging
04-02 10:16:42.761 I/DuplexOutgoingSession: Generated ack: true
04-02 10:16:42.762 I/DuplexOutgoingSession: Sent ack
04-02 10:16:42.768 I/ValidationManagerImpl: Delivering message for org.briarproject.briar.messaging
04-02 10:16:42.770 I/AutoDeleteManagerImpl: Mirroring auto-delete timer 604800000
04-02 10:16:42.786 I/ConversationActivity: Message received, adding
04-02 10:16:42.791 I/DuplexOutgoingSession: Generated ack: false
04-02 10:17:12.763 I/DuplexOutgoingSession: Sending keepalive
04-02 10:17:33.484 I/DuplexOutgoingSession: Checking for retransmittable messages
04-02 10:17:33.514 I/DuplexOutgoingSession: Generated batch: false
04-02 10:17:33.520 I/DuplexOutgoingSession: Generated offer: false
```
As far as I can tell, the crash happens because `PhoneFallbackEventHandler` is being called to [handle a key event](https://cs.android.com/android/platform/superproject/+/master:frameworks/base/core/java/com/android/internal/policy/PhoneFallbackEventHandler.java;drc=95c1165bb895dd844e1793460710f7163dd330a3;l=250) for `KEYCODE_CALL`. The handler tries to start a call activity for the current app, which fails because Briar doesn't have permission to close system dialogs (which I guess is part of the process of launching the call activity).
So perhaps this is happening just because the user hits the call button on their device/keyboard, or perhaps it also requires some other circumstances, like an unusual device/keyboard config. Either way, it looks like a problem that's specific to this user and (based on their comment) not specific to Briar.https://code.briarproject.org/briar/briar-desktop/-/issues/515Mailbox Error Dialog: when unpairing is successful, don't show "error" as title2023-04-26T08:00:43ZSebastianMailbox Error Dialog: when unpairing is successful, don't show "error" as titleI think it is rather confusing when this says "error" in this case. It's actually rather a success dialog.I think it is rather confusing when this says "error" in this case. It's actually rather a success dialog.Torsten GroteTorsten Grote