briar issueshttps://code.briarproject.org/groups/briar/-/issues2023-05-10T17:24:23Zhttps://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/-/issues/2430Icons are missing from our F-Droid repo2023-04-28T17:31:20ZakwizgranIcons are missing from our F-Droid repoOur F-Droid repo doesn't appear to have up-to-date icons for Briar or Mailbox. The newest icons for Briar are for the long-obsolete 1.1.6 release.Our F-Droid repo doesn't appear to have up-to-date icons for Briar or Mailbox. The newest icons for Briar are for the long-obsolete 1.1.6 release.https://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/-/issues/2428AssertionError when loading image preview2023-04-18T14:43:25ZakwizgranAssertionError when loading image preview* Android version: 10
* Phone model: Samsung SM-A115U (a11qsq)
* Briar version: 1.4.22 (f02bbeb)
* User feedback: "Crash when sending image."
Stacktrace:
```
java.lang.AssertionError
at org.briarproject.briar.android.view.ImageP...* Android version: 10
* Phone model: Samsung SM-A115U (a11qsq)
* Briar version: 1.4.22 (f02bbeb)
* User feedback: "Crash when sending image."
Stacktrace:
```
java.lang.AssertionError
at org.briarproject.briar.android.view.ImagePreviewAdapter.loadItemPreview(ImagePreviewAdapter.java:57)
at org.briarproject.briar.android.view.ImagePreview.loadPreviewImage(ImagePreview.java:80)
at org.briarproject.briar.android.view.TextAttachmentController.onNewAttachmentItemResults(TextAttachmentController.java:206)
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:883)
at android.os.Handler.dispatchMessage(Handler.java:100)
at android.os.Looper.loop(Looper.java:237)
at android.app.ActivityThread.main(ActivityThread.java:8107)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:496)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1100)
```
Edited log:
```
03-18 20:52:32.715 I/BaseActivity: Starting ConversationActivity
03-18 20:52:32.720 I/BaseActivity: Resuming ConversationActivity
03-18 20:52:33.024 I/ImageCompressorImpl: Original image size: 682x1024
03-18 20:52:33.024 I/ImageCompressorImpl: Scaling attachment by factor of 2
03-18 20:52:33.098 I/ImageCompressorImpl: Compressed image to 30054 bytes, quality 70
03-18 20:52:33.903 I/BaseActivity: Pausing ConversationActivity
03-18 20:52:33.924 I/BaseActivity: Starting NavDrawerActivity
03-18 20:52:33.925 I/BaseActivity: Resuming NavDrawerActivity
03-18 20:52:34.396 I/BaseActivity: Stopping ConversationActivity
03-18 20:52:34.397 I/BaseActivity: Destroying ConversationActivity
03-18 20:52:35.287 I/BaseActivity: Pausing NavDrawerActivity
03-18 20:52:35.310 I/BaseActivity: Creating ConversationActivity
03-18 20:52:35.333 I/ConversationViewModel: PrivateMessageFormat loaded: TEXT_IMAGES_AUTO_DELETE
03-18 20:52:35.382 I/BaseActivity: Starting ConversationActivity
03-18 20:52:35.384 I/BaseActivity: Resuming ConversationActivity
03-18 20:52:35.886 I/BaseActivity: Stopping NavDrawerActivity
03-18 20:52:36.322 I/ConversationActivity: Eagerly loading text for latest message
03-18 20:52:36.794 I/BaseActivity: Pausing ConversationActivity
03-18 20:52:37.403 I/BaseActivity: Stopping ConversationActivity
03-18 20:52:41.046 I/BaseActivity: Starting ConversationActivity
03-18 20:52:41.048 I/BaseActivity: Resuming ConversationActivity
03-18 20:52:41.076 I/ImageCompressorImpl: Original image size: 720x1560
03-18 20:52:41.077 I/ImageCompressorImpl: Scaling attachment by factor of 2
03-18 20:52:41.177 I/ImageCompressorImpl: Compressed image to 29301 bytes, quality 70
```Android 1.4https://code.briarproject.org/briar/briar-mailbox/-/issues/192Set up fastlane for app store metadata2023-08-28T16:00:10ZTorsten GroteSet up fastlane for app store metadatahttps://code.briarproject.org/briar/public-mesh-testbed/-/issues/2Add uncaught exception handler, ensure that crashes get logged2023-04-17T14:11:48ZakwizgranAdd uncaught exception handler, ensure that crashes get loggedhttps://code.briarproject.org/briar/briar-desktop/-/issues/516Notifications are not detected to be not working on Raspbian2023-04-15T18:53:01ZMikolai GütschowNotifications are not detected to be not working on RaspbianQuoting @sebkur from https://code.briarproject.org/briar/briar-desktop/-/issues/327#note_74864:
> Notifications do not work and are not detected to be not working (which might be the thing that we could ideally detect). I think it's not...Quoting @sebkur from https://code.briarproject.org/briar/briar-desktop/-/issues/327#note_74864:
> Notifications do not work and are not detected to be not working (which might be the thing that we could ideally detect). I think it's not much our fault though. After installing `x11-utils`, I have `notify-send` which also doesn't work. It fails silently, much like our app. I think there's just nothing installed on that system that shows the notifications that are being sent to libnotify.
> The message is
>
> ```
> libnotify-WARNING: Failed to connect to proxy
> ```
> `ldd --version` shows:
>
> ```
> Debian GLIBC 2.31-13...
> ```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 Grotehttps://code.briarproject.org/briar/briar-desktop/-/issues/514Signed hashsums for release downloads2023-04-11T14:32:44ZSebastianSigned hashsums for release downloadsMultiple users asked for signed hashsums in the chat.
I think the issue has been discussed sometime already and we'd prefer to keep akwizgran out of the desktop release loop (he is not entirely with the need to update the website at the...Multiple users asked for signed hashsums in the chat.
I think the issue has been discussed sometime already and we'd prefer to keep akwizgran out of the desktop release loop (he is not entirely with the need to update the website at the moment), however we can try not to reinforce that dependency.
We could probably sign with a different key for the desktop team?https://code.briarproject.org/briar/briar/-/issues/2427Don't scroll to bottom when accepting invitations2023-04-09T01:16:48Zre tiolusDon't scroll to bottom when accepting invitationsIt's quite annoying, when accepting a lot of invites that UI scroll back to the bottom of the conversation. Would be also cool that the "UP" arrow goes to the first unread message of the chat.It's quite annoying, when accepting a lot of invites that UI scroll back to the bottom of the conversation. Would be also cool that the "UP" arrow goes to the first unread message of the chat.https://code.briarproject.org/briar/briar/-/issues/2426IllegalArgumentException when receiving ACTIVATE message as introducee2023-03-31T15:22:30ZakwizgranIllegalArgumentException when receiving ACTIVATE message as introduceeStacktrace:
```
java.lang.IllegalArgumentException
at org.briarproject.bramble.transport.TransportKeyManagerImpl.activateKeys(TransportKeyManagerImpl.java:285)
at org.briarproject.bramble.transport.KeyManagerImpl.lambda$activateKeys$2(...Stacktrace:
```
java.lang.IllegalArgumentException
at org.briarproject.bramble.transport.TransportKeyManagerImpl.activateKeys(TransportKeyManagerImpl.java:285)
at org.briarproject.bramble.transport.KeyManagerImpl.lambda$activateKeys$2(KeyManagerImpl.java:176)
at org.briarproject.bramble.transport.KeyManagerImpl.$r8$lambda$hZAivP_ym8Z94pCCnZpsDSza1P4(Unknown Source:0)
at org.briarproject.bramble.transport.KeyManagerImpl$$ExternalSyntheticLambda8.run(Unknown Source:4)
at org.briarproject.bramble.transport.KeyManagerImpl.withManager(KeyManagerImpl.java:268)
at org.briarproject.bramble.transport.KeyManagerImpl.activateKeys(KeyManagerImpl.java:175)
at org.briarproject.briar.introduction.IntroduceeProtocolEngine.onRemoteActivate(IntroduceeProtocolEngine.java:511)
at org.briarproject.briar.introduction.IntroduceeProtocolEngine.onActivateMessage(IntroduceeProtocolEngine.java:234)
at org.briarproject.briar.introduction.IntroduceeProtocolEngine.onActivateMessage(IntroduceeProtocolEngine.java:63)
at org.briarproject.briar.introduction.IntroductionManagerImpl.handleMessage(IntroductionManagerImpl.java:253)
at org.briarproject.briar.introduction.IntroductionManagerImpl.incomingMessage(IntroductionManagerImpl.java:211)
at org.briarproject.bramble.api.client.BdfIncomingMessageHook.incomingMessage(BdfIncomingMessageHook.java:63)
at org.briarproject.bramble.sync.validation.ValidationManagerImpl.deliverMessage(ValidationManagerImpl.java:333)
at org.briarproject.bramble.sync.validation.ValidationManagerImpl.lambda$storeMessageContext$6(ValidationManagerImpl.java:290)
at org.briarproject.bramble.sync.validation.ValidationManagerImpl.$r8$lambda$kV95asJ25004Lz0CviD-sa65BcQ(Unknown Source:0)
at org.briarproject.bramble.sync.validation.ValidationManagerImpl$$ExternalSyntheticLambda18.run(Unknown Source:19)
at org.briarproject.bramble.db.DatabaseComponentImpl.transaction(DatabaseComponentImpl.java:200)
at org.briarproject.bramble.sync.validation.ValidationManagerImpl.storeMessageContext(ValidationManagerImpl.java:266)
at org.briarproject.bramble.sync.validation.ValidationManagerImpl.lambda$storeMessageContextAsync$5(ValidationManagerImpl.java:255)
at org.briarproject.bramble.sync.validation.ValidationManagerImpl.$r8$lambda$tOT1oX1UbzoJ5r_HnnaJxOWFjgE(Unknown Source:0)
at org.briarproject.bramble.sync.validation.ValidationManagerImpl$$ExternalSyntheticLambda8.run(Unknown Source:10)
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:764)
```
The user reported that they were introduced to the contact in question, but couldn't send messages to them. They then readded the contact by exchanging links.
Possibly related to #2085?Android 1.4https://code.briarproject.org/briar/briar/-/issues/2425List of RSS feeds doesn't update when feed is removed2023-03-27T11:11:22ZakwizgranList of RSS feeds doesn't update when feed is removedThe list of RSS feeds doesn't update when the feed is removed by unsubscribing via the feed's overflow menu, rather than using the delete button in the list of RSS feeds.
Steps to reproduce:
* Add an RSS feed
* Tap the entry in the list...The list of RSS feeds doesn't update when the feed is removed by unsubscribing via the feed's overflow menu, rather than using the delete button in the list of RSS feeds.
Steps to reproduce:
* Add an RSS feed
* Tap the entry in the list of RSS feeds to open the feed
* Unsubscribe via the overflow menu ("Remove blog")
* Expected: The list of RSS feeds is shown, it's now empty
* Actual: The list of RSS feeds is show, it still contains the removed feed. Tapping the feed again causes a NoSuchGroupException (error toast, no crash)https://code.briarproject.org/briar/briar/-/issues/2424[Feature] Add the ability to visualise the use of storage2023-03-30T08:54:30Zre tiolus[Feature] Add the ability to visualise the use of storageIt would be interesting, especially on the desktop client, to be able to easily consult the storage that Briar uses, especially when you start adding a lot of contacts and entering many groups/forumsIt would be interesting, especially on the desktop client, to be able to easily consult the storage that Briar uses, especially when you start adding a lot of contacts and entering many groups/forumshttps://code.briarproject.org/briar/briar/-/issues/2423Adding contact at a distance - Tapping the 'Add contact' button before the ni...2023-03-16T16:09:15ZIvanaAdding contact at a distance - Tapping the 'Add contact' button before the nickname is typed in, leaves the screen 'in progress'...**Steps to reproduce:**
- tap the 'add contact at a distance' button
- past the contact's link into the appropriate field and tap Continue
- On the screen that follows, user needs to type in the nickname for their contact.
- Once the k...**Steps to reproduce:**
- tap the 'add contact at a distance' button
- past the contact's link into the appropriate field and tap Continue
- On the screen that follows, user needs to type in the nickname for their contact.
- Once the keyboard opens, the button Add contact and the line where the nickname needs to be typed in are quite close on the screen
![Screenshot_20230316_154402](/uploads/c72e004ce6af6af07b20d356e7f64d1f/Screenshot_20230316_154402.png)
- This means that it could happen that the user accidentally taps on the Add contact button before they type in the nickname
- if that happens, then the user sees this
![Screenshot_20230316_154221](/uploads/3d580b498a2a2a337e8fa89d9c3c818d/Screenshot_20230316_154221.png)
- the user is still able to type the nicknam in, but tapping the enter button on the keyboard doesn't do anything other than closing the keyboard.
- once the keyboard is closed, then the user sees this
![Screenshot_20230316_155028](/uploads/cee861c9ecd822405197fcc626fc769f/Screenshot_20230316_155028.png)
The screen keeps showing the small 'inprogress' circle...
it happens inMaster and in the MR 1770 ( build hash 1627f4f )
Tested onHTC Android 7, Nokia Android 10
Workaround is to navigate one screen back and tap on Continue button again...https://code.briarproject.org/briar/briar-desktop/-/issues/511More steps for UI scale2023-03-14T13:56:05ZSebastianMore steps for UI scaleA user requested that we add more UI scale values to select from.
Currently, we have 1..3 with 3 steps, i.e. 1, 1.5, 2, 2.5, 3
I think it could be reasonable to use 1..3 with 7 steps, i.e. 1, 1.25, 1.5, 1.75, ..., 2.75, 3A user requested that we add more UI scale values to select from.
Currently, we have 1..3 with 3 steps, i.e. 1, 1.5, 2, 2.5, 3
I think it could be reasonable to use 1..3 with 7 steps, i.e. 1, 1.25, 1.5, 1.75, ..., 2.75, 3