briar issueshttps://code.briarproject.org/groups/briar/-/issues2023-01-19T13:08:51Zhttps://code.briarproject.org/briar/briar-mailbox/-/issues/151Success screen doesn't show after linking with Briar2023-01-19T13:08:51ZIvanaSuccess screen doesn't show after linking with BriarDevices used: Samsung 6910, Android 4.1.2 and Samsung Core A01S, Andorid 10
Steps to reproduce:
- do not keep activities = ON
- install mailbox on a device and when the QR screen is displayed scan it wiht the Bria app on another devic...Devices used: Samsung 6910, Android 4.1.2 and Samsung Core A01S, Andorid 10
Steps to reproduce:
- do not keep activities = ON
- install mailbox on a device and when the QR screen is displayed scan it wiht the Bria app on another device
- Whilst the proress wheel is turning on Briar, wait
- When the success screen shows on the Briar app, there shoudl be a success screen on the mailbox side too.
- However, the success screen ont he mailbox side doesn't show. See the video attached...
- not the very exciting video, as most of the time it shows just the QR code.. so be patient and then towrds the end you will see that from the QR code, the next screen that shows is the mailbox status screen, and not the success screen as it should.
ps it happens without the do-not-keep-activities selected too
![device-2022-08-04-121335](/uploads/83abb8e322965c433b4f2ab23e5f094f/device-2022-08-04-121335.mp4)IvanaIvanahttps://code.briarproject.org/briar/briar-mailbox/-/issues/153At first intro screen, if mailbox app pushed into the background then foregro...2023-01-19T13:08:33ZIvanaAt first intro screen, if mailbox app pushed into the background then foreground - it skips the rest of the intro screensDevice used: Samsung 6810 API 16, Android 4.1.2
Steps to reproduce
- fresh install mailbox
- when the first intro screen shows, push the mailbox app into the background, and open any other app for a short while
- then go back to the m...Device used: Samsung 6810 API 16, Android 4.1.2
Steps to reproduce
- fresh install mailbox
- when the first intro screen shows, push the mailbox app into the background, and open any other app for a short while
- then go back to the mailbox app.
Expected results:
- mailbox should be showing the first intro screen again as the user did not make any selection there -no tap on either skip intro, or on the continue button)
Actual results:
- mailbox displays the progress wheel instead of the expected intro screens
This happens with both do-not-keep-activities selected and not selected.
Will now try another device
OK, it can also be reproduced on Samsung A01 Core, Android 10, do-not-keep(activities = ON as well as OFF) On this device, if I leave the mailbox app in the background and open another app for a short while, then go back to the mailbox - instead of the first intro screen, I see the do-not-kill-me fragment. I would expect, like above, to see the first intro screen again because I didn't make any selection on that screen before I pushed the app into the background.SebastianSebastianhttps://code.briarproject.org/briar/briar-mailbox/-/issues/152Mailbox Intro screens in Landscape not readable Samsung 68102023-01-19T13:08:19ZIvanaMailbox Intro screens in Landscape not readable Samsung 6810Device used: Samsung 6810 Android 4.1.2, API 16
this is an old device with screen that is quite small and when in landscape some of the text on the intro screens is not readable because it seems covered by other contents of the screen. ...Device used: Samsung 6810 Android 4.1.2, API 16
this is an old device with screen that is quite small and when in landscape some of the text on the intro screens is not readable because it seems covered by other contents of the screen. See photos attached.
![Screenshot_20220804_112027](/uploads/8f13eda98fb45de1a7391519ef6c8eb3/Screenshot_20220804_112027.png)
![Screenshot_20220804_112045](/uploads/59e91480ee68bbea1bba0e24766e654e/Screenshot_20220804_112045.png)
![Screenshot_20220804_112100](/uploads/cb4e933c8560f12dade88d79730f171b/Screenshot_20220804_112100.png)Torsten GroteTorsten Grotehttps://code.briarproject.org/briar/briar-mailbox/-/issues/155Remote wiping when Mailbox screen asleep => Wiping Complete screen presents t...2023-01-19T13:07:59ZIvanaRemote wiping when Mailbox screen asleep => Wiping Complete screen presents twice**Steps to reproduce**
Briar device: Samsung A01S Core, Android 10
Mailbox device: Motorola E2, Android 6
do not keep activities = On for both devices, but results are the same iwth do not keep activities = OFF on mailbox
- when Briar...**Steps to reproduce**
Briar device: Samsung A01S Core, Android 10
Mailbox device: Motorola E2, Android 6
do not keep activities = On for both devices, but results are the same iwth do not keep activities = OFF on mailbox
- when Briar and Mailbox are connected, wait for the Mailbox device screen to be askeep (ie to turn black)
- then tap Unlink on Briar side
- When the process finishes, and the Briar settings screen presents again, tap the Mailbox device screen to activate it
**Expected results:**
- Wiping complete screen presents on mailbox device.
- On taping the Finish button, the mailbox exits.
**Actual results**
- Wiping complete screen does present, but when the user taps the Finish button, instead of the mailbox app exiting, the same screen presents again, via a couple of other briefly visible screens. See video attached.
- The video screen is black initially because I started recording via Android Studio when I tapped Unlink on the Briar screen. The mailbox device screen was asleep at that time, and when the wiping finishes on Briar side, I tap the mailbox device to reactivate that screen...
![device-2022-08-09-124536](/uploads/2ad5c1e1aaf6460ddb4554b62e27ad94/device-2022-08-09-124536.mp4)https://code.briarproject.org/briar/briar-mailbox/-/issues/159Stuck on init fragment when navigating away quickly during start2023-01-19T13:07:29ZSebastianStuck on init fragment when navigating away quickly during startSteps to reproduce:
* Open app, before the first screen appears, navigate away using the (O) button, back to the home screen,
* wait a few seconds,
* go back to app, doesn't matter if via app launcher or recent apps list
You should be s...Steps to reproduce:
* Open app, before the first screen appears, navigate away using the (O) button, back to the home screen,
* wait a few seconds,
* go back to app, doesn't matter if via app launcher or recent apps list
You should be stuck at the init fragment that shows the green mailbox logo and "Briar Mailbox"SebastianSebastianhttps://code.briarproject.org/briar/briar/-/issues/2363Mailbox unreachable screen on Briar side - landscape - Samsung 6810 (small sc...2023-01-19T13:07:05ZIvanaMailbox unreachable screen on Briar side - landscape - Samsung 6810 (small screen) links overwriting each otherOn Samsung 6810 when the mailbox is not reachable, the screen looks like this - links overwriting each other
![Screenshot_20220907_164841](/uploads/d38b4a87b6ae1d09611f0f99d02fd193/Screenshot_20220907_164841.png)On Samsung 6810 when the mailbox is not reachable, the screen looks like this - links overwriting each other
![Screenshot_20220907_164841](/uploads/d38b4a87b6ae1d09611f0f99d02fd193/Screenshot_20220907_164841.png)IvanaIvanahttps://code.briarproject.org/briar/briar-mailbox/-/issues/160Wiping complete screen - button hides text in landscape orientation2023-01-19T13:06:34ZIvanaWiping complete screen - button hides text in landscape orientationThis happens on HTC E9 Android 5.0.2, HTC One M9 Android 7, Samsung 6810 Android 4.1.2 (very small screen), nokia 3.2 Android 10...
Whereas on the big screen of Huawei P40 lite 5G all the text and the button are displayed OK.
![Screensho...This happens on HTC E9 Android 5.0.2, HTC One M9 Android 7, Samsung 6810 Android 4.1.2 (very small screen), nokia 3.2 Android 10...
Whereas on the big screen of Huawei P40 lite 5G all the text and the button are displayed OK.
![Screenshot_20220907_171716](/uploads/a375e717fb43a0e044d67779719b3760/Screenshot_20220907_171716.png)https://code.briarproject.org/briar/briar/-/issues/2367Navigating back from Connection screen to Mailbox setup screens in Briar - se...2023-01-19T13:05:58ZIvanaNavigating back from Connection screen to Mailbox setup screens in Briar - second mailbox setup screen overwrites the first oneSteps to reproduce:
- In Briar go to Briar > settings > Connections and switch the internet and wifi connections off
- Then for to Briar > settings > mailbox => the mailbox is offline screen shows, which is correct
- Tap the check Con...Steps to reproduce:
- In Briar go to Briar > settings > Connections and switch the internet and wifi connections off
- Then for to Briar > settings > mailbox => the mailbox is offline screen shows, which is correct
- Tap the check Connections link on that screen => Connections screen shows, where the user can switch the internet and wifi back on
- switch the internet and wifi back on
- tap on Back button (arrow in upper left corner) and the first mailbox setup screen will show
- then tap continue => the second mailbxo setup screen overwrites the first one, see attached files
![device-2022-09-28-133914](/uploads/edcbf78a75a2348b7c280833da3ed82a/device-2022-09-28-133914.mp4)IvanaIvanahttps://code.briarproject.org/briar/briar-mailbox/-/issues/162Unable to start mailbox: SavedStateHandle issue2023-01-19T13:05:28ZIvanaUnable to start mailbox: SavedStateHandle issueUpdated the mailbox in AS to the build 84d336a47ff545be05f374bf7a5fae855f2f3c3d
The installation seems to run OK, and I get a message in Android Studio that the launch has succeeded.
However, when I try to launch the mailbox on a devi...Updated the mailbox in AS to the build 84d336a47ff545be05f374bf7a5fae855f2f3c3d
The installation seems to run OK, and I get a message in Android Studio that the launch has succeeded.
However, when I try to launch the mailbox on a device, I get this
![Screenshot_20220929_115848](/uploads/879aaf9e3cd6c3a1ec02daf21447f09c/Screenshot_20220929_115848.png)
If I go the screen App info, and tap on Open, I get the same message.
Michael took a look and attached this stack trace to the conversation in MM
```ruby
2022-09-29 12:05:16.432 6627-6627/org.briarproject.mailbox E/AndroidRuntime: FATAL EXCEPTION: main
Process: org.briarproject.mailbox, PID: 6627
java.lang.IllegalArgumentException: CreationExtras must have a value by `SAVED_STATE_REGISTRY_OWNER_KEY`
at androidx.lifecycle.SavedStateHandleSupport.createSavedStateHandle(SavedStateHandleSupport.kt:91)
at androidx.lifecycle.AbstractSavedStateViewModelFactory.create(AbstractSavedStateViewModelFactory.java:89)
at dagger.hilt.android.internal.lifecycle.HiltViewModelFactory.create(HiltViewModelFactory.java:111)
at androidx.lifecycle.ViewModelProvider.get(ViewModelProvider.kt:187)
at androidx.lifecycle.ViewModelProvider.get(ViewModelProvider.kt:153)
at androidx.lifecycle.ViewModelLazy.getValue(ViewModelLazy.kt:53)
at androidx.lifecycle.ViewModelLazy.getValue(ViewModelLazy.kt:35)
at org.briarproject.mailbox.android.ui.MainActivity.getViewModel(MainActivity.kt:68)
at org.briarproject.mailbox.android.ui.MainActivity.access$getViewModel(MainActivity.kt:59)
at org.briarproject.mailbox.android.ui.MainActivity$onCreate$2.invokeSuspend(MainActivity.kt:87)
at org.briarproject.mailbox.android.ui.MainActivity$onCreate$2.invoke(Unknown Source:8)
at org.briarproject.mailbox.android.ui.MainActivity$onCreate$2.invoke(Unknown Source:2)
at org.briarproject.mailbox.android.ui.UtilsKt$launchAndRepeatWhileStarted$1$1.invokeSuspend(Utils.kt:37)
at org.briarproject.mailbox.android.ui.UtilsKt$launchAndRepeatWhileStarted$1$1.invoke(Unknown Source:8)
at org.briarproject.mailbox.android.ui.UtilsKt$launchAndRepeatWhileStarted$1$1.invoke(Unknown Source:4)
at androidx.lifecycle.RepeatOnLifecycleKt$repeatOnLifecycle$3$1$1$1$1$1$1.invokeSuspend(RepeatOnLifecycle.kt:111)
at androidx.lifecycle.RepeatOnLifecycleKt$repeatOnLifecycle$3$1$1$1$1$1$1.invoke(Unknown Source:8)
at androidx.lifecycle.RepeatOnLifecycleKt$repeatOnLifecycle$3$1$1$1$1$1$1.invoke(Unknown Source:4)
at kotlinx.coroutines.intrinsics.UndispatchedKt.startUndispatchedOrReturn(Undispatched.kt:89)
at kotlinx.coroutines.CoroutineScopeKt.coroutineScope(CoroutineScope.kt:264)
at androidx.lifecycle.RepeatOnLifecycleKt$repeatOnLifecycle$3$1$1$1$1.invokeSuspend(RepeatOnLifecycle.kt:110)
at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
at kotlinx.coroutines.internal.DispatchedContinuationKt.resumeCancellableWith(DispatchedContinuation.kt:367)
at kotlinx.coroutines.intrinsics.CancellableKt.startCoroutineCancellable(Cancellable.kt:30)
at kotlinx.coroutines.intrinsics.CancellableKt.startCoroutineCancellable$default(Cancellable.kt:25)
at kotlinx.coroutines.CoroutineStart.invoke(CoroutineStart.kt:110)
at kotlinx.coroutines.AbstractCoroutine.start(AbstractCoroutine.kt:126)
at kotlinx.coroutines.BuildersKt__Builders_commonKt.launch(Builders.common.kt:56)
at kotlinx.coroutines.BuildersKt.launch(Unknown Source:1)
at kotlinx.coroutines.BuildersKt__Builders_commonKt.launch$default(Builders.common.kt:47)
at kotlinx.coroutines.BuildersKt.launch$default(Unknown Source:1)
at androidx.lifecycle.RepeatOnLifecycleKt$repeatOnLifecycle$3$1$1$1.onStateChanged(RepeatOnLifecycle.kt:106)
at androidx.lifecycle.LifecycleRegistry$ObserverWithState.dispatchEvent(LifecycleRegistry.java:360)
at androidx.lifecycle.LifecycleRegistry.forwardPass(LifecycleRegistry.java:271)
at androidx.lifecycle.LifecycleRegistry.sync(LifecycleRegistry.java:313)
at androidx.lifecycle.LifecycleRegistry.moveToState(LifecycleRegistry.java:151)
at androidx.lifecycle.LifecycleRegistry.handleLifecycleEvent(LifecycleRegistry.java:134)
```Torsten GroteTorsten Grotehttps://code.briarproject.org/briar/briar/-/issues/2358Rotating screen while "Your Mailbox has been unlinked" dialogue box is displ...2023-01-19T13:04:56ZIvanaRotating screen while "Your Mailbox has been unlinked" dialogue box is displayed causes blank screenSteps to reproduce:
I used the Xiaomi MI11 Lite 5G device, and the Pixel 2 and was able to reproduce on both
- I link the Briar app on either device with a mailbox on another device
- Then I unlink the mailbox using the mailbox device...Steps to reproduce:
I used the Xiaomi MI11 Lite 5G device, and the Pixel 2 and was able to reproduce on both
- I link the Briar app on either device with a mailbox on another device
- Then I unlink the mailbox using the mailbox device, so that the Briar app is unable to reach it.
- Then I tap Unlink on the bottom of the mailbox status screen in the Briar app
- unlinking seems to run OK, and there is the progress wheel, and after that there is the dialogue box "Your mailbox has been unlinked.. Next time you have access to yoru ailbox device, please open the Mailbox app and tap the Unlink button to complete the process..." The only option a user has on this dialogue is to tap Got it.
- But if the screen is rotate at this point, BEFORE taping the Got it, then what we see if this:
![20220825_122023](/uploads/598074b5521d980a4cc7d44ff149a39a/20220825_122023.jpg)
Having problems wiht Android Studio which currently get frozen if i try to take a screenshot - so here's the photo of the screen taken with another phone.
If I tap the Back arrow in the top left corner of this blankscreen, then what I see is the mailbox status screen again.... Whereas the unlinking has been already done, so this screen should not be disaplyed again.
If I go back from that screen, I see Briar settings screen, and if I go into mailbox option, I see that the mailbox linking can be done again.
This happens both with do-not-keep-acitivities on and offIvanaIvanahttps://code.briarproject.org/briar/briar-mailbox/-/issues/178Testers didn't understand purpose of stop button2023-01-19T13:03:25ZakwizgranTesters didn't understand purpose of stop button> Do users understand what the Stop button is for (and that they are not going to receive any messages in their Mailbox when it is stopped?)
>
> Most participants were confused by this question. They were trying to guess but they weren’t...> Do users understand what the Stop button is for (and that they are not going to receive any messages in their Mailbox when it is stopped?)
>
> Most participants were confused by this question. They were trying to guess but they weren’t sure if their answers were right. Some guessed that they would receive the messages and they would be saved in the mailbox, they would be able to get them after they run the Mailbox app again. Some assumed that they would lose all messages when they stop it. Others assumed that they would be able to get their messages if they stop
but they wouldn’t be able to get them if they Unlink the device, as in that case the Mailbox itself would be deleted.Mailbox: Usability testingSebastianSebastianhttps://code.briarproject.org/briar/briar/-/issues/2360Mailbox Problem notification causes crash on Android 42023-01-19T13:02:32ZTorsten GroteMailbox Problem notification causes crash on Android 4When Briar can't connect to the mailbox for some time, we show a notification, so the user is aware of this problem.
On Android 4, this needs a special icon. Vector drawables are not supported.When Briar can't connect to the mailbox for some time, we show a notification, so the user is aware of this problem.
On Android 4, this needs a special icon. Vector drawables are not supported.Mailbox: Status UI for Briar appIvanaIvanahttps://code.briarproject.org/briar/briar/-/issues/1483IllegalArgumentException when adding member to private group2023-01-17T11:21:09ZakwizgranIllegalArgumentException when adding member to private group* Android version: 6.0.1
* Phone model: Neffos Y5L (TP801A)
* Briar version: 1.1.1 (9476782)
* User feedback: "Crash while trying to add person to a group."
Stacktrace:
```
java.lang.IllegalArgumentException
at org.briarproject....* Android version: 6.0.1
* Phone model: Neffos Y5L (TP801A)
* Briar version: 1.1.1 (9476782)
* User feedback: "Crash while trying to add person to a group."
Stacktrace:
```
java.lang.IllegalArgumentException
at org.briarproject.briar.privategroup.invitation.SessionParserImpl.parseCreatorSession(SessionParserImpl.java:54)
at org.briarproject.briar.privategroup.invitation.GroupInvitationManagerImpl.isInvitationAllowed(GroupInvitationManagerImpl.java:482)
at org.briarproject.briar.android.privategroup.creation.CreateGroupControllerImpl.isDisabled(CreateGroupControllerImpl.java:121)
at org.briarproject.briar.android.contactselection.ContactSelectorControllerImpl.lambda$loadContacts$0$ContactSelectorControllerImpl(ContactSelectorControllerImpl.java:51)
at org.briarproject.briar.android.contactselection.ContactSelectorControllerImpl$$Lambda$0.run(Unknown Source)
at org.briarproject.briar.android.controller.DbControllerImpl.lambda$runOnDbThread$0$DbControllerImpl(DbControllerImpl.java:35)
at org.briarproject.briar.android.controller.DbControllerImpl$$Lambda$0.run(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1113)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:588)
at java.lang.Thread.run(Thread.java:818)
```Android 1.4Torsten GroteTorsten Grotehttps://code.briarproject.org/briar/briar-desktop/-/issues/421Visual bug in forum with large author names2023-01-11T21:49:54ZMikolai GütschowVisual bug in forum with large author namesalthough the name is abbreviated (with ellipsis), the trust indicators are moved to the right:
![grafik](/uploads/258ace9883049e0d3364bc3f46ba8507/grafik.png)although the name is abbreviated (with ellipsis), the trust indicators are moved to the right:
![grafik](/uploads/258ace9883049e0d3364bc3f46ba8507/grafik.png)https://code.briarproject.org/briar/briar-desktop/-/issues/440Sometimes when starting the test with two connected accounts, the shared foru...2023-01-09T21:51:52ZSebastianSometimes when starting the test with two connected accounts, the shared forum is only available one of both accountsI haven't seen anything unusual in the logs, but will try to record one next time I see this happen.I haven't seen anything unusual in the logs, but will try to record one next time I see this happen.https://code.briarproject.org/briar/briar-desktop/-/issues/160Move focus when clicking on a contact2023-01-09T21:41:07ZMikolai GütschowMove focus when clicking on a contactCurrently, if the user pressed on the filter text field before, the focus stays there and they can continue to enter text there.Currently, if the user pressed on the filter text field before, the focus stays there and they can continue to enter text there.Desktop 0.4.0https://code.briarproject.org/briar/briar-desktop/-/issues/268Wrong text when accepting introduction with already-known contact2023-01-09T21:39:57ZNicoWrong text when accepting introduction with already-known contactIt should say something like
> You accepted the introduction to Bob, but as you already have Bob in your contact list, nothing will change.
Currently it shows the same messages as always, à la "You accepted and once Bob accepts, too, th...It should say something like
> You accepted the introduction to Bob, but as you already have Bob in your contact list, nothing will change.
Currently it shows the same messages as always, à la "You accepted and once Bob accepts, too, they will show up in your contact list."Desktop 1.0.0https://code.briarproject.org/briar/briar-desktop/-/issues/226NPE when introducing second test contact after already completed introduction2023-01-09T21:39:56ZNicoNPE when introducing second test contact after already completed introduction_I tried to reproduce this but failed because one contact out of 3 didn't want to connect with the other two inside the test environment._
Steps to reproduce:
* Start `TestWithThreeConnectedTemporaryAccounts::main`
* Introduce your firs..._I tried to reproduce this but failed because one contact out of 3 didn't want to connect with the other two inside the test environment._
Steps to reproduce:
* Start `TestWithThreeConnectedTemporaryAccounts::main`
* Introduce your first contact to the second one
* accept the introductions from both accounts
* try to introduce your second account to the first
```
Exception in thread "main" java.lang.NullPointerException
at androidx.compose.ui.layout.SubcomposeLayoutState.disposeCurrentNodes$ui(SubcomposeLayout.kt:386)
at androidx.compose.ui.layout.SubcomposeLayoutKt$SubcomposeLayout$3$invoke$$inlined$onDispose$1.dispose(Effects.kt:484)
at androidx.compose.runtime.DisposableEffectImpl.onForgotten(Effects.kt:85)
at androidx.compose.runtime.CompositionImpl$RememberEventDispatcher.dispatchRememberObservers(Composition.kt:793)
at androidx.compose.runtime.CompositionImpl.dispose(Composition.kt:496)
at androidx.compose.ui.layout.SubcomposeLayoutState.disposeCurrentNodes$ui(SubcomposeLayout.kt:386)
at androidx.compose.ui.layout.SubcomposeLayoutKt$SubcomposeLayout$3$invoke$$inlined$onDispose$1.dispose(Effects.kt:484)
at androidx.compose.runtime.DisposableEffectImpl.onForgotten(Effects.kt:85)
at androidx.compose.runtime.CompositionImpl$RememberEventDispatcher.dispatchRememberObservers(Composition.kt:793)
at androidx.compose.runtime.CompositionImpl.dispose(Composition.kt:496)
at androidx.compose.ui.layout.SubcomposeLayoutState.disposeCurrentNodes$ui(SubcomposeLayout.kt:386)
at androidx.compose.ui.layout.SubcomposeLayoutKt$SubcomposeLayout$3$invoke$$inlined$onDispose$1.dispose(Effects.kt:484)
at androidx.compose.runtime.DisposableEffectImpl.onForgotten(Effects.kt:85)
at androidx.compose.runtime.CompositionImpl$RememberEventDispatcher.dispatchRememberObservers(Composition.kt:793)
at androidx.compose.runtime.CompositionImpl.dispose(Composition.kt:496)
at androidx.compose.ui.ComposeScene.close(ComposeScene.skiko.kt:195)
at androidx.compose.ui.awt.ComposeLayer.dispose(ComposeLayer.desktop.kt:362)
at androidx.compose.ui.awt.ComposeWindowDelegate.dispose(ComposeWindowDelegate.desktop.kt:113)
at androidx.compose.ui.awt.ComposeWindow.dispose(ComposeWindow.desktop.kt:117)
at androidx.compose.ui.window.Window_desktopKt$Window$4.invoke(Window.desktop.kt:193)
at androidx.compose.ui.window.Window_desktopKt$Window$4.invoke(Window.desktop.kt:193)
at androidx.compose.ui.window.AwtWindow_desktopKt$AwtWindow$2$invoke$$inlined$onDispose$1.dispose(Effects.kt:484)
at androidx.compose.runtime.DisposableEffectImpl.onForgotten(Effects.kt:85)
at androidx.compose.runtime.CompositionImpl$RememberEventDispatcher.dispatchRememberObservers(Composition.kt:793)
at androidx.compose.runtime.CompositionImpl.applyChanges(Composition.kt:647)
at androidx.compose.runtime.Recomposer$runRecomposeAndApplyChanges$2$2.invoke(Recomposer.kt:488)
at androidx.compose.runtime.Recomposer$runRecomposeAndApplyChanges$2$2.invoke(Recomposer.kt:425)
at androidx.compose.ui.window.YieldFrameClock.withFrameNanos(Application.desktop.kt:262)
at androidx.compose.ui.window.YieldFrameClock$withFrameNanos$1.invokeSuspend(Application.desktop.kt)
at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:106)
at java.desktop/java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:316)
at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:770)
at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:721)
at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:715)
at java.base/java.security.AccessController.doPrivileged(AccessController.java:391)
at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:85)
at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:740)
at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:203)
at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:124)
at java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:113)
at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:109)
at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
at java.desktop/java.awt.EventDispatchThread.run(EventDispatchThread.java:90)
```
After this the window with the error message got closed. Then I got another error in the second window with this:
```
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
at org.briarproject.briar.desktop.conversation.ConversationRequestItemViewKt$ConversationRequestItemView$4.invoke(ConversationRequestItemView.kt:85)
at org.briarproject.briar.desktop.conversation.ConversationRequestItemViewKt$ConversationRequestItemView$4.invoke(ConversationRequestItemView.kt:82)
at androidx.compose.runtime.internal.ComposableLambdaImpl.invoke(ComposableLambda.jvm.kt:107)
at androidx.compose.runtime.internal.ComposableLambdaImpl.invoke(ComposableLambda.jvm.kt:34)
at org.briarproject.briar.desktop.conversation.ConversationItemViewKt$ConversationItemView$2$1$2$1.invoke(ConversationItemView.kt:181)
at org.briarproject.briar.desktop.conversation.ConversationItemViewKt$ConversationItemView$2$1$2$1.invoke(ConversationItemView.kt:180)
at androidx.compose.runtime.internal.ComposableLambdaImpl.invoke(ComposableLambda.jvm.kt:107)
at androidx.compose.runtime.internal.ComposableLambdaImpl.invoke(ComposableLambda.jvm.kt:34)
at androidx.compose.material.SurfaceKt$Surface$6.invoke(Surface.kt:268)
at androidx.compose.material.SurfaceKt$Surface$6.invoke(Surface.kt:255)
at androidx.compose.runtime.internal.ComposableLambdaImpl.invoke(ComposableLambda.jvm.kt:107)
at androidx.compose.runtime.internal.ComposableLambdaImpl.invoke(ComposableLambda.jvm.kt:34)
at androidx.compose.runtime.CompositionLocalKt.CompositionLocalProvider(CompositionLocal.kt:228)
at androidx.compose.material.SurfaceKt.Surface-F-jzlyU(Surface.kt:252)
at androidx.compose.material.SurfaceKt.Surface-F-jzlyU(Surface.kt:110)
at androidx.compose.material.CardKt.Card-F-jzlyU(Card.kt:66)
at org.briarproject.briar.desktop.conversation.ConversationItemViewKt$ConversationItemView$2$1$2.invoke(ConversationItemView.kt:174)
at org.briarproject.briar.desktop.conversation.ConversationItemViewKt$ConversationItemView$2$1$2.invoke(ConversationItemView.kt:173)
at androidx.compose.runtime.internal.ComposableLambdaImpl.invoke(ComposableLambda.jvm.kt:107)
at androidx.compose.runtime.internal.ComposableLambdaImpl.invoke(ComposableLambda.jvm.kt:34)
at androidx.compose.foundation.ContextMenuProvider_desktopKt$ContextMenuArea$2.invoke(ContextMenuProvider.desktop.kt:53)
at androidx.compose.foundation.ContextMenuProvider_desktopKt$ContextMenuArea$2.invoke(ContextMenuProvider.desktop.kt:51)
at androidx.compose.runtime.internal.ComposableLambdaImpl.invoke(ComposableLambda.jvm.kt:107)
at androidx.compose.runtime.internal.ComposableLambdaImpl.invoke(ComposableLambda.jvm.kt:34)
at androidx.compose.foundation.ContextMenuProvider_desktopKt$ContextMenuDataProvider$2.invoke(ContextMenuProvider.desktop.kt:79)
at androidx.compose.foundation.ContextMenuProvider_desktopKt$ContextMenuDataProvider$2.invoke(ContextMenuProvider.desktop.kt:78)
at androidx.compose.runtime.internal.ComposableLambdaImpl.invoke(ComposableLambda.jvm.kt:107)
at androidx.compose.runtime.internal.ComposableLambdaImpl.invoke(ComposableLambda.jvm.kt:34)
at androidx.compose.runtime.CompositionLocalKt.CompositionLocalProvider(CompositionLocal.kt:228)
at androidx.compose.foundation.ContextMenuProvider_desktopKt.ContextMenuDataProvider(ContextMenuProvider.desktop.kt:76)
at androidx.compose.foundation.ContextMenuProvider_desktopKt.ContextMenuArea(ContextMenuProvider.desktop.kt:51)
at org.briarproject.briar.desktop.conversation.ConversationItemViewKt.ConversationItemView(ConversationItemView.kt:167)
at org.briarproject.briar.desktop.conversation.ConversationRequestItemViewKt.ConversationRequestItemView(ConversationRequestItemView.kt:82)
at org.briarproject.briar.desktop.conversation.ConversationListKt$ConversationList$1$1$invoke$$inlined$itemsIndexed$default$2.invoke(LazyDsl.kt:270)
at org.briarproject.briar.desktop.conversation.ConversationListKt$ConversationList$1$1$invoke$$inlined$itemsIndexed$default$2.invoke(LazyDsl.kt:119)
at androidx.compose.runtime.internal.ComposableLambdaImpl.invoke(ComposableLambda.jvm.kt:135)
at androidx.compose.runtime.internal.ComposableLambdaImpl.invoke(ComposableLambda.jvm.kt:34)
at androidx.compose.foundation.lazy.LazyListScopeImpl$items$1$1.invoke(LazyListScopeImpl.kt:39)
at androidx.compose.foundation.lazy.LazyListScopeImpl$items$1$1.invoke(LazyListScopeImpl.kt:39)
at androidx.compose.runtime.internal.ComposableLambdaImpl.invoke(ComposableLambda.jvm.kt:107)
at androidx.compose.runtime.internal.ComposableLambdaImpl.invoke(ComposableLambda.jvm.kt:34)
at androidx.compose.runtime.CompositionLocalKt.CompositionLocalProvider(CompositionLocal.kt:228)
at androidx.compose.runtime.saveable.SaveableStateHolderImpl.SaveableStateProvider(SaveableStateHolder.kt:84)
at androidx.compose.foundation.lazy.layout.LazyLayoutItemContentFactory$CachedItemContent$content$1.invoke(LazyLayoutItemContentFactory.kt:102)
at androidx.compose.foundation.lazy.layout.LazyLayoutItemContentFactory$CachedItemContent$content$1.invoke(LazyLayoutItemContentFactory.kt:93)
at androidx.compose.runtime.internal.ComposableLambdaImpl.invoke(ComposableLambda.jvm.kt:107)
at androidx.compose.runtime.internal.ComposableLambdaImpl.invoke(ComposableLambda.jvm.kt:34)
at androidx.compose.ui.layout.SubcomposeLayoutState$subcompose$2$1$1.invoke(SubcomposeLayout.kt:251)
at androidx.compose.ui.layout.SubcomposeLayoutState$subcompose$2$1$1.invoke(SubcomposeLayout.kt:251)
at androidx.compose.runtime.internal.ComposableLambdaImpl.invoke(ComposableLambda.jvm.kt:107)
at androidx.compose.runtime.internal.ComposableLambdaImpl.invoke(ComposableLambda.jvm.kt:34)
at androidx.compose.runtime.ActualJvm_jvmKt.invokeComposable(ActualJvm.jvm.kt:72)
at androidx.compose.runtime.ComposerImpl$doCompose$2$5.invoke(Composer.kt:2582)
at androidx.compose.runtime.ComposerImpl$doCompose$2$5.invoke(Composer.kt:2571)
at androidx.compose.runtime.SnapshotStateKt__DerivedStateKt.observeDerivedStateRecalculations(DerivedState.kt:247)
at androidx.compose.runtime.SnapshotStateKt.observeDerivedStateRecalculations(Unknown Source)
at androidx.compose.runtime.ComposerImpl.doCompose(Composer.kt:2571)
at androidx.compose.runtime.ComposerImpl.composeContent$runtime(Composer.kt:2522)
at androidx.compose.runtime.CompositionImpl.composeContent(Composition.kt:478)
at androidx.compose.runtime.Recomposer.composeInitial$runtime(Recomposer.kt:748)
at androidx.compose.runtime.ComposerImpl$CompositionContextImpl.composeInitial$runtime(Composer.kt:2987)
at androidx.compose.runtime.ComposerImpl$CompositionContextImpl.composeInitial$runtime(Composer.kt:2987)
at androidx.compose.runtime.ComposerImpl$CompositionContextImpl.composeInitial$runtime(Composer.kt:2987)
at androidx.compose.runtime.CompositionImpl.setContent(Composition.kt:433)
at androidx.compose.ui.layout.SubcomposeLayoutState.subcomposeInto(SubcomposeLayout.kt:269)
at androidx.compose.ui.layout.SubcomposeLayoutState.access$subcomposeInto(SubcomposeLayout.kt:154)
at androidx.compose.ui.layout.SubcomposeLayoutState$subcompose$2.invoke(SubcomposeLayout.kt:244)
at androidx.compose.ui.layout.SubcomposeLayoutState$subcompose$2.invoke(SubcomposeLayout.kt:241)
at androidx.compose.runtime.snapshots.SnapshotStateObserver.withNoObservations(SnapshotStateObserver.kt:142)
at androidx.compose.ui.node.OwnerSnapshotObserver.withNoSnapshotReadObservation$ui(OwnerSnapshotObserver.kt:55)
at androidx.compose.ui.node.LayoutNode.withNoSnapshotReadObservation$ui(LayoutNode.kt:1140)
at androidx.compose.ui.layout.SubcomposeLayoutState.subcompose(SubcomposeLayout.kt:241)
at androidx.compose.ui.layout.SubcomposeLayoutState.subcompose(SubcomposeLayout.kt:235)
at androidx.compose.ui.layout.SubcomposeLayoutState.subcompose$ui(SubcomposeLayout.kt:224)
at androidx.compose.ui.layout.SubcomposeLayoutState$Scope.subcompose(SubcomposeLayout.kt:490)
at androidx.compose.foundation.lazy.layout.LazyLayoutPlaceablesProvider.getAndMeasure-0kLqBqw(LazyMeasurePolicy.kt:58)
at androidx.compose.foundation.lazy.LazyMeasuredItemProvider.getAndMeasure-ZjPyQlc(LazyMeasuredItemProvider.kt:45)
at androidx.compose.foundation.lazy.LazyListMeasureKt.measureLazyList-DCyOChk(LazyListMeasure.kt:140)
at androidx.compose.foundation.lazy.LazyListKt$rememberLazyListMeasurePolicy$1$1.measure-3p2s80s(LazyList.kt:230)
at androidx.compose.foundation.lazy.layout.LazyLayoutKt$LazyLayout$2.invoke-0kLqBqw(LazyLayout.kt:55)
at androidx.compose.foundation.lazy.layout.LazyLayoutKt$LazyLayout$2.invoke(LazyLayout.kt:44)
at androidx.compose.ui.layout.SubcomposeLayoutState$createMeasurePolicy$1.measure-3p2s80s(SubcomposeLayout.kt:355)
at androidx.compose.ui.node.InnerPlaceable.measure-BRTryo0(InnerPlaceable.kt:55)
at androidx.compose.foundation.layout.PaddingValuesModifier.measure-3p2s80s(Padding.kt:417)
at androidx.compose.ui.node.ModifiedLayoutNode.measure-BRTryo0(ModifiedLayoutNode.kt:39)
at androidx.compose.ui.node.DelegatingLayoutNodeWrapper.measure-BRTryo0(DelegatingLayoutNodeWrapper.kt:118)
at androidx.compose.ui.node.DelegatingLayoutNodeWrapper.measure-BRTryo0(DelegatingLayoutNodeWrapper.kt:118)
at androidx.compose.ui.node.DelegatingLayoutNodeWrapper.measure-BRTryo0(DelegatingLayoutNodeWrapper.kt:118)
at androidx.compose.ui.node.DelegatingLayoutNodeWrapper.measure-BRTryo0(DelegatingLayoutNodeWrapper.kt:118)
at androidx.compose.ui.node.DelegatingLayoutNodeWrapper.measure-BRTryo0(DelegatingLayoutNodeWrapper.kt:118)
at androidx.compose.ui.node.DelegatingLayoutNodeWrapper.measure-BRTryo0(DelegatingLayoutNodeWrapper.kt:118)
at androidx.compose.ui.graphics.SimpleGraphicsLayerModifier.measure-3p2s80s(GraphicsLayerModifier.kt:306)
at androidx.compose.ui.node.ModifiedLayoutNode.measure-BRTryo0(ModifiedLayoutNode.kt:39)
at androidx.compose.ui.node.DelegatingLayoutNodeWrapper.measure-BRTryo0(DelegatingLayoutNodeWrapper.kt:118)
at androidx.compose.foundation.layout.PaddingModifier.measure-3p2s80s(Padding.kt:364)
at androidx.compose.ui.node.ModifiedLayoutNode.measure-BRTryo0(ModifiedLayoutNode.kt:39)
at androidx.compose.foundation.layout.FillModifier.measure-3p2s80s(Size.kt:658)
at androidx.compose.ui.node.ModifiedLayoutNode.measure-BRTryo0(ModifiedLayoutNode.kt:39)
at androidx.compose.ui.node.OuterMeasurablePlaceable$remeasure$2.invoke(OuterMeasurablePlaceable.kt:99)
at androidx.compose.ui.node.OuterMeasurablePlaceable$remeasure$2.invoke(OuterMeasurablePlaceable.kt:98)
at androidx.compose.runtime.snapshots.Snapshot$Companion.observe(Snapshot.kt:1798)
at androidx.compose.runtime.snapshots.SnapshotStateObserver.observeReads(SnapshotStateObserver.kt:121)
at androidx.compose.ui.node.OwnerSnapshotObserver.observeReads$ui(OwnerSnapshotObserver.kt:88)
at androidx.compose.ui.node.OwnerSnapshotObserver.observeMeasureSnapshotReads$ui(OwnerSnapshotObserver.kt:76)
at androidx.compose.ui.node.OuterMeasurablePlaceable.remeasure-BRTryo0(OuterMeasurablePlaceable.kt:98)
at androidx.compose.ui.node.LayoutNode.remeasure-_Sx5XlM$ui(LayoutNode.kt:1269)
at androidx.compose.ui.node.LayoutNode.remeasure-_Sx5XlM$ui$default(LayoutNode.kt:1265)
at androidx.compose.ui.node.MeasureAndLayoutDelegate.doRemeasure(MeasureAndLayoutDelegate.kt:170)
at androidx.compose.ui.node.MeasureAndLayoutDelegate.remeasureAndRelayoutIfNeeded(MeasureAndLayoutDelegate.kt:228)
at androidx.compose.ui.node.MeasureAndLayoutDelegate.access$remeasureAndRelayoutIfNeeded(MeasureAndLayoutDelegate.kt:38)
at androidx.compose.ui.node.MeasureAndLayoutDelegate.measureAndLayout(MeasureAndLayoutDelegate.kt:201)
at androidx.compose.ui.platform.SkiaBasedOwner.measureAndLayout(SkiaBasedOwner.skiko.kt:266)
at androidx.compose.ui.node.Owner$DefaultImpls.measureAndLayout$default(Owner.kt:182)
at androidx.compose.ui.platform.SkiaBasedOwner.processPointerInput-gBdvCQM$ui(SkiaBasedOwner.skiko.kt:342)
at androidx.compose.ui.platform.SkiaBasedOwner.processPointerInput-gBdvCQM$ui$default(SkiaBasedOwner.skiko.kt:341)
at androidx.compose.ui.ComposeScene.onMouseMove(ComposeScene.skiko.kt:465)
at androidx.compose.ui.ComposeScene.sendPointerEvent-Kr8mkKM(ComposeScene.skiko.kt:429)
at androidx.compose.ui.ComposeScene.sendPointerEvent-Kr8mkKM$default(ComposeScene.skiko.kt:397)
at androidx.compose.ui.awt.ComposeLayer_desktopKt.onMouseEvent(ComposeLayer.desktop.kt:415)
at androidx.compose.ui.awt.ComposeLayer_desktopKt.access$onMouseEvent(ComposeLayer.desktop.kt:1)
at androidx.compose.ui.awt.ComposeLayer$onMouseEvent$1.invoke(ComposeLayer.desktop.kt:273)
at androidx.compose.ui.awt.ComposeLayer$onMouseEvent$1.invoke(ComposeLayer.desktop.kt:269)
at androidx.compose.ui.awt.ComposeLayer.catchExceptions(ComposeLayer.desktop.kt:89)
at androidx.compose.ui.awt.ComposeLayer.onMouseEvent(ComposeLayer.desktop.kt:269)
at androidx.compose.ui.awt.ComposeLayer.access$onMouseEvent(ComposeLayer.desktop.kt:70)
at androidx.compose.ui.awt.ComposeLayer$3.mouseEntered(ComposeLayer.desktop.kt:251)
at java.desktop/java.awt.Component.processMouseEvent(Component.java:6623)
at java.desktop/java.awt.Component.processEvent(Component.java:6379)
at java.desktop/java.awt.Component.dispatchEventImpl(Component.java:4990)
at java.desktop/java.awt.Component.dispatchEvent(Component.java:4822)
at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:772)
at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:721)
at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:715)
at java.base/java.security.AccessController.doPrivileged(AccessController.java:391)
at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:85)
at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:95)
at java.desktop/java.awt.EventQueue$5.run(EventQueue.java:745)
at java.desktop/java.awt.EventQueue$5.run(EventQueue.java:743)
at java.base/java.security.AccessController.doPrivileged(AccessController.java:391)
at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:85)
at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:742)
at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:203)
at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:124)
at java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:113)
at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:109)
at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
at java.desktop/java.awt.EventDispatchThread.run(EventDispatchThread.java:90)
```Desktop 1.0.0https://code.briarproject.org/briar/briar-desktop/-/issues/231Handle NoSuchContactException when loading contact or messages in Conversatio...2023-01-09T21:39:55ZNicoHandle NoSuchContactException when loading contact or messages in ConversationViewModelCurrently the whole app most likely crashes, I think.
https://code.briarproject.org/briar/briar-desktop/-/blob/d1e668dec33d8f309a6f6d99bbc8b4af015475d2/src/main/kotlin/org/briarproject/briar/desktop/conversation/ConversationViewModel.kt...Currently the whole app most likely crashes, I think.
https://code.briarproject.org/briar/briar-desktop/-/blob/d1e668dec33d8f309a6f6d99bbc8b4af015475d2/src/main/kotlin/org/briarproject/briar/desktop/conversation/ConversationViewModel.kt#L275Desktop 1.0.0https://code.briarproject.org/briar/briar-desktop/-/issues/232Properly handle DbException and UnexpectedTimerException when sending messages2023-01-09T21:39:54ZNicoProperly handle DbException and UnexpectedTimerException when sending messagesCurrently the input field gets cleared and the exception gets logged, but the user sees no indication that sending the message failed besides seeing that it didn't get added to the chat history.
https://code.briarproject.org/briar/briar...Currently the input field gets cleared and the exception gets logged, but the user sees no indication that sending the message failed besides seeing that it didn't get added to the chat history.
https://code.briarproject.org/briar/briar-desktop/-/blob/d1e668dec33d8f309a6f6d99bbc8b4af015475d2/src/main/kotlin/org/briarproject/briar/desktop/conversation/ConversationViewModel.kt#L193Desktop 1.0.0