briar issueshttps://code.briarproject.org/groups/briar/-/issues2022-11-08T07:51:33Zhttps://code.briarproject.org/briar/briar-desktop/-/issues/406Add test scenario with multiple accounts connected to same forum2022-11-08T07:51:33ZMikolai GütschowAdd test scenario with multiple accounts connected to same forumfor interactive testing of #405 for examplefor interactive testing of #405 for exampleMikolai GütschowMikolai Gütschowhttps://code.briarproject.org/briar/briar-desktop/-/issues/405Update unread counter and timestamp on new message in forum list2022-11-15T08:45:31ZMikolai GütschowUpdate unread counter and timestamp on new message in forum listprobably similar to how it's done for private chatsprobably similar to how it's done for private chatsMikolai GütschowMikolai Gütschowhttps://code.briarproject.org/briar/briar-desktop/-/issues/404Avoid sending multiple notifications directly one after another2022-11-22T16:05:57ZMikolai GütschowAvoid sending multiple notifications directly one after anothere.g. by using a timer - something similar is probably done in Briar Android
applies to both sound and visual notificationse.g. by using a timer - something similar is probably done in Briar Android
applies to both sound and visual notificationsDesktop 0.4.0Mikolai GütschowMikolai Gütschowhttps://code.briarproject.org/briar/briar-desktop/-/issues/403Re-enable automatic resource updates on Transifex after potential 0.3.1-beta ...2022-10-13T13:24:31ZMikolai GütschowRe-enable automatic resource updates on Transifex after potential 0.3.1-beta releaseSince some translation teams couldn't work enough on their language before release 0.3.0-beta, we offered to extend the string freeze until October, 12th and release a minor version update afterwards.Since some translation teams couldn't work enough on their language before release 0.3.0-beta, we offered to extend the string freeze until October, 12th and release a minor version update afterwards.Desktop 0.3.1https://code.briarproject.org/briar/briar-desktop/-/issues/402Deterministic test data with sent and received message state2023-02-05T22:31:15ZSebastianDeterministic test data with sent and received message stateIn order for messages to appear as received and read, I currently do this:``
```diff
index fc66a39..ee38a90 100644
--- a/briar-desktop/src/main/kotlin/org/briarproject/briar/desktop/conversation/ConversationItemView.kt
+++ b/briar-deskt...In order for messages to appear as received and read, I currently do this:``
```diff
index fc66a39..ee38a90 100644
--- a/briar-desktop/src/main/kotlin/org/briarproject/briar/desktop/conversation/ConversationItemView.kt
+++ b/briar-desktop/src/main/kotlin/org/briarproject/briar/desktop/conversation/ConversationItemView.kt
@@ -38,7 +38,6 @@ import androidx.compose.material.Text
import androidx.compose.material.icons.Icons
import androidx.compose.material.icons.filled.Done
import androidx.compose.material.icons.filled.DoneAll
-import androidx.compose.material.icons.filled.Schedule
import androidx.compose.runtime.Composable
import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
@@ -234,7 +233,7 @@ fun ColumnScope.ConversationItemStatusView(item: ConversationItem, rowModifier:
val icon =
if (item.isSeen) Icons.Filled.DoneAll // acknowledged
else if (item.isSent) Icons.Filled.Done // sent
- else Icons.Filled.Schedule // waiting
+ else Icons.Filled.DoneAll // waiting
Icon(icon, i18n("access.message.sent"), modifier, statusColor)
}
}
```
I think in the long term, it would be nice if the test data creator could just set those flags to values that we like for such purposes via the DSL.https://code.briarproject.org/briar/briar/-/issues/2369Keys or app backup2022-09-30T16:50:22ZNext OneKeys or app backupIt's a possible situation when you have to delete Briar app for safety purposes. But now it means losing all contacts.It's a possible situation when you have to delete Briar app for safety purposes. But now it means losing all contacts.https://code.briarproject.org/briar/briar/-/issues/2368Can't connect with Orbot or vpn2022-09-30T17:23:17ZNext OneCan't connect with Orbot or vpnGreetings and thanks for great project.
May I suggest to add a possibility to switch off routing through TOR? I's cool for normal phone but I must use Orbot for all traffic. And Briar can't connect like that. Same with vpn.Greetings and thanks for great project.
May I suggest to add a possibility to switch off routing through TOR? I's cool for normal phone but I must use Orbot for all traffic. And Briar can't connect like that. Same with vpn.https://code.briarproject.org/briar/briar-desktop/-/issues/401Permalinks for nightly builds in README are 4042022-09-30T12:41:19ZMikolai GütschowPermalinks for nightly builds in README are 404although the nightly pipelines [do run](https://code.briarproject.org/briar/briar-desktop/-/pipelines/12265) and we use the [permalinks as documented](https://docs.gitlab.com/ee/ci/pipelines/job_artifacts.html#access-the-latest-job-artif...although the nightly pipelines [do run](https://code.briarproject.org/briar/briar-desktop/-/pipelines/12265) and we use the [permalinks as documented](https://docs.gitlab.com/ee/ci/pipelines/job_artifacts.html#access-the-latest-job-artifacts-by-url)https://code.briarproject.org/briar/briar-desktop/-/issues/400Create release builds for Ubuntu 22 / Mint 21 / elementary 7 etc.2022-09-30T11:51:31ZSebastianCreate release builds for Ubuntu 22 / Mint 21 / elementary 7 etc.https://code.briarproject.org/briar/briar-desktop/-/issues/399Build for/on current Ubuntu LTS 22.042023-01-29T22:35:51ZMikolai GütschowBuild for/on current Ubuntu LTS 22.04additionally to Ubuntu 20.04 and perhaps instead of Ubuntu 18.04?
This is also the base for the current Linux Mint 21, and will be for upcoming elementary OS 7 and Trisquel 11additionally to Ubuntu 20.04 and perhaps instead of Ubuntu 18.04?
This is also the base for the current Linux Mint 21, and will be for upcoming elementary OS 7 and Trisquel 11Desktop 0.4.0SebastianSebastianhttps://code.briarproject.org/briar/briar-desktop/-/issues/398Find mechanism for checking translations for missing variables or too many va...2023-05-08T14:14:43ZSebastianFind mechanism for checking translations for missing variables or too many variablesIt is possible that some translations contain:
* too many variables, e.g. "Some test {0} some more text {1}" while {1} will never be supplied
* too few variables, e.g. "Some test {0}" while two arguments will be supplied
Both situation ...It is possible that some translations contain:
* too many variables, e.g. "Some test {0} some more text {1}" while {1} will never be supplied
* too few variables, e.g. "Some test {0}" while two arguments will be supplied
Both situation don't cause an error, just a wrongly formatted string at the moment.
I think it would be nice if we could run some static analysis on our strings to check for this.
Maybe there's something like this in the Transifex online tools, not sure.https://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/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-desktop/-/issues/397Enforce Twitter Jetpack Compose Rules using ktlint2023-02-02T22:38:06ZMikolai GütschowEnforce Twitter Jetpack Compose Rules using ktlintfound by @grote: https://twitter.github.io/compose-rules/found by @grote: https://twitter.github.io/compose-rules/https://code.briarproject.org/briar/briar/-/issues/2366Briar crashes with TorNotRunningException when signing out2022-09-28T18:35:07ZakwizgranBriar crashes with TorNotRunningException when signing outBriar sometimes crashes at shutdown if we happen to be executing a control port command when the Tor process exits. This is caused by rethrowing the TorNotRunningException as a RuntimeException, which was added to diagnose #1499.
Stackt...Briar sometimes crashes at shutdown if we happen to be executing a control port command when the Tor process exits. This is caused by rethrowing the TorNotRunningException as a RuntimeException, which was added to diagnose #1499.
Stacktrace:
```
java.lang.RuntimeException: net.freehaven.tor.control.TorNotRunningException: Interrupted
at org.briarproject.bramble.plugin.tor.TorPlugin.enableNetwork(TorPlugin.java:558)
at org.briarproject.bramble.plugin.tor.AndroidTorPlugin.enableNetwork(AndroidTorPlugin.java:107)
at org.briarproject.bramble.plugin.tor.TorPlugin.lambda$updateConnectionStatus$4(TorPlugin.java:975)
at org.briarproject.bramble.plugin.tor.TorPlugin.$r8$lambda$b9522N3kxPZfk5DvPwbwRZVqjaA(TorPlugin.java)
at org.briarproject.bramble.plugin.tor.TorPlugin$$ExternalSyntheticLambda3.run(Unknown Source)
at org.briarproject.bramble.PoliteExecutor.lambda$execute$0(PoliteExecutor.java:57)
at org.briarproject.bramble.PoliteExecutor.$r8$lambda$wSvuPL6t_HUoaaqCVexrhJX_RSg(PoliteExecutor.java)
at org.briarproject.bramble.PoliteExecutor$$ExternalSyntheticLambda0.run(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
at java.lang.Thread.run(Thread.java:841)
Caused by: net.freehaven.tor.control.TorNotRunningException: Interrupted
at net.freehaven.tor.control.TorControlConnection.sendAndWaitForResponse(TorControlConnection.java:201)
at net.freehaven.tor.control.TorControlConnection.setConf(TorControlConnection.java:406)
at net.freehaven.tor.control.TorControlConnection.setConf(TorControlConnection.java:361)
at org.briarproject.bramble.plugin.tor.TorPlugin.enableNetwork(TorPlugin.java:556)
at org.briarproject.bramble.plugin.tor.AndroidTorPlugin.enableNetwork(AndroidTorPlugin.java:107)
at org.briarproject.bramble.plugin.tor.TorPlugin.lambda$updateConnectionStatus$4(TorPlugin.java:975)
at org.briarproject.bramble.plugin.tor.TorPlugin.$r8$lambda$b9522N3kxPZfk5DvPwbwRZVqjaA(TorPlugin.java)
at org.briarproject.bramble.plugin.tor.TorPlugin$$ExternalSyntheticLambda3.run(Unknown Source)
at org.briarproject.bramble.PoliteExecutor.lambda$execute$0(PoliteExecutor.java:57)
at org.briarproject.bramble.PoliteExecutor.$r8$lambda$wSvuPL6t_HUoaaqCVexrhJX_RSg(PoliteExecutor.java)
at org.briarproject.bramble.PoliteExecutor$$ExternalSyntheticLambda0.run(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
at java.lang.Thread.run(Thread.java:841)
```
Last lines of log:
```
2022-09-27 12:41:26.537 19200-19344/org.briarproject.briar.android.debug I/TorPlugin: Creating v3 hidden service
2022-09-27 12:41:26.537 19200-19343/org.briarproject.briar.android.debug I/PluginManagerImpl: Starting plugin org.briarproject.bramble.tor took 4417 ms
2022-09-27 12:41:26.537 19200-19359/org.briarproject.briar.android.debug I/PluginManagerImpl: org.briarproject.bramble.tor changed from state ENABLING to STARTING_STOPPING
2022-09-27 12:41:26.537 19200-19359/org.briarproject.briar.android.debug I/TorPlugin: Stopping Tor
2022-09-27 12:41:26.537 19200-19351/org.briarproject.briar.android.debug I/TorPlugin: Server socket closed
2022-09-27 12:41:26.537 19200-19343/org.briarproject.briar.android.debug I/AndroidWakeLockImpl: WakefulIoExecutor_6 releasing shared wake lock
2022-09-27 12:41:26.537 19200-19343/org.briarproject.briar.android.debug I/RenewableWakeLock: Wake lock org.briarproject.briar.android.debug has 2 holders
2022-09-27 12:41:26.537 19200-19368/org.briarproject.briar.android.debug I/AndroidWakeLockImpl: TorPlugin_5 acquiring shared wake lock
2022-09-27 12:41:26.537 19200-19368/org.briarproject.briar.android.debug I/RenewableWakeLock: Wake lock org.briarproject.briar.android.debug has 3 holders
2022-09-27 12:41:26.537 19200-19353/org.briarproject.briar.android.debug I/TorPlugin: NOTICE DisableNetwork is set. Tor will not make or accept non-control network connections. Shutting down all existing connections.
2022-09-27 12:41:26.547 19200-19359/org.briarproject.briar.android.debug I/AndroidWakeLockImpl: TorPlugin_5 releasing shared wake lock
2022-09-27 12:41:26.547 19200-19359/org.briarproject.briar.android.debug I/RenewableWakeLock: Wake lock org.briarproject.briar.android.debug has 2 holders
2022-09-27 12:41:26.547 19200-19359/org.briarproject.briar.android.debug I/PluginManagerImpl: Stopping plugin org.briarproject.bramble.tor took 9 ms
2022-09-27 12:41:26.547 19200-19367/org.briarproject.briar.android.debug I/LifecycleManagerImpl: Stopping service PluginManagerImpl took 885 ms
2022-09-27 12:41:26.547 19200-19367/org.briarproject.briar.android.debug I/LifecycleManagerImpl: Stopping service MailboxClientManager took 1 ms
2022-09-27 12:41:26.547 19200-19367/org.briarproject.briar.android.debug I/LifecycleManagerImpl: Stopping service RendezvousPollerImpl took 0 ms
2022-09-27 12:41:26.547 19200-19367/org.briarproject.briar.android.debug I/LifecycleManagerImpl: Stopping service AndroidNotificationManagerImpl took 4 ms
2022-09-27 12:41:26.547 19200-19367/org.briarproject.briar.android.debug I/LifecycleManagerImpl: Stopping service ScreenFilterMonitorImpl took 0 ms
2022-09-27 12:41:26.557 19200-19367/org.briarproject.briar.android.debug I/NetworkUsageMetricsImpl: Duration 4 seconds
2022-09-27 12:41:26.557 19200-19367/org.briarproject.briar.android.debug I/NetworkUsageMetricsImpl: Received 1862 bytes
2022-09-27 12:41:26.557 19200-19367/org.briarproject.briar.android.debug I/NetworkUsageMetricsImpl: Sent 1961 bytes
2022-09-27 12:41:26.557 19200-19367/org.briarproject.briar.android.debug I/LifecycleManagerImpl: Stopping service NetworkUsageMetricsImpl took 4 ms
2022-09-27 12:41:26.557 19200-19367/org.briarproject.briar.android.debug I/LifecycleManagerImpl: Stopping service DozeWatchdogImpl took 0 ms
2022-09-27 12:41:26.557 19200-19367/org.briarproject.briar.android.debug I/LifecycleManagerImpl: Stopping service LockManagerImpl took 0 ms
2022-09-27 12:41:26.557 19200-19367/org.briarproject.briar.android.debug I/LifecycleManagerImpl: Stopping executor TimeLoggingExecutor
2022-09-27 12:41:26.557 19200-19367/org.briarproject.briar.android.debug I/LifecycleManagerImpl: Stopping executor ScheduledThreadPoolExecutor
2022-09-27 12:41:26.557 19200-19367/org.briarproject.briar.android.debug I/LifecycleManagerImpl: Stopping executor ThreadPoolExecutor
2022-09-27 12:41:26.567 19200-19368/org.briarproject.briar.android.debug W/dalvikvm: threadid=29: thread exiting with uncaught exception (group=0x41945da0)
2022-09-27 12:41:26.567 19200-19344/org.briarproject.briar.android.debug W/TorPlugin: java.net.SocketException: Socket closed
java.net.SocketException: Socket closed
at libcore.io.Posix.recvfromBytes(Native Method)
at libcore.io.Posix.recvfrom(Posix.java:141)
at libcore.io.BlockGuardOs.recvfrom(BlockGuardOs.java:164)
at libcore.io.IoBridge.recvfrom(IoBridge.java:506)
at java.net.PlainSocketImpl.read(PlainSocketImpl.java:489)
at java.net.PlainSocketImpl.access$000(PlainSocketImpl.java:46)
at java.net.PlainSocketImpl$PlainSocketInputStream.read(PlainSocketImpl.java:241)
at java.io.InputStreamReader.read(InputStreamReader.java:233)
at java.io.BufferedReader.fillBuf(BufferedReader.java:145)
at java.io.BufferedReader.readLine(BufferedReader.java:397)
at net.freehaven.tor.control.TorControlConnection.readReply(TorControlConnection.java:143)
at net.freehaven.tor.control.TorControlConnection.react(TorControlConnection.java:327)
at net.freehaven.tor.control.TorControlConnection$ControlParseThread.run(TorControlConnection.java:309)
```Android 1.4akwizgranakwizgranhttps://code.briarproject.org/briar/briar-desktop/-/issues/396Report for work after UX and accessibility audit2023-01-09T22:41:09ZSebastianReport for work after UX and accessibility auditI'm working on the report for OTF and am using our summary issues with the checklists as a base for what we put into that report. Whatever is striked through is already mentioned in the report.
## Copied from #366:
Targeting issues rai...I'm working on the report for OTF and am using our summary issues with the checklists as a base for what we put into that report. Whatever is striked through is already mentioned in the report.
## Copied from #366:
Targeting issues raised in #341 and as part of #84.
- ~~Heading structure: > not supported by upstream Compose (https://github.com/JetBrains/compose-jb/issues/2119)~~
- [ ] ~~"Welcome to Briar" on login and main screen (no chats)~~
- [ ] ~~contact name in chat screen~~
- [ ] ~~"Settings" on SettingsScreen~~
- ~~Image(Button) contentDescription:~~
- [ ] ~~Briar logo on login > only of decorative nature, automatically skipped over by VoiceOver~~
- [x] ~~back and info button on login > !223 and info button already "About Briar Desktop" on `main`~~
- [x] ~~menu button in chat screen > already "Show Contact Menu" on `main`~~
- [x] ~~add contact button without chats > fixed on `main`~~
- [x] ~~attachment button in chat screen > fixed on `main`~~
- ~~Missing context:~~
- [x] ~~show password buttons on login/change password > automatically grouped on macOS/VoiceOver~~
- [x] ~~labels for text fields (registration screen) > !225 .~~
- ~~Missing list grouping:~~
- [x] ~~contact list > !218 .~~
- [x] ~~settings as list > !224 .~~
- ~~Missing state information (expanded/collapsed): Dropdowns/Pop-Ups not supported by Compose https://github.com/JetBrains/compose-jb/issues/2185 .~~
- [ ] ~~menu button in chat screen~~
- [ ] ~~theme/language settings, also dynamic changes~~
- Misc:
- [ ] ~~error message on login (not read out loud) > upstream bug: https://github.com/JetBrains/compose-jb/issues/2277 .~~
- [x] ~~about dialog (no exit button, table not marked as such, email is not link) > !221 .~~
- [x] ~~message count/online status in contact list > !218. ~~
- [x] ~~"keyboard trap" in compose message text field (tab button is stuck in text field) > !222 .~~
- [ ] ~~Missing landmarks on MainScreen to convey structure to screen-reader user > not supported by Compose~~
- [x] Keyboard focus does not go to close button on add contact dialog > probably missing OS-functionality on Ubuntu/Orca which is anyhow not supported, confirmed to work on macOS with VoiceOver as expected
- [ ] ~~Dropdown not marked as such (settings) > Dropdowns/Pop-Ups not supported by Compose https://github.com/JetBrains/compose-jb/issues/2185 .~~
- [x] ~~Briar link name/label on Add Contact dialog > !230~~
- [x] ~~Add attachment button not keyboard-focusable on macOS > !222~~
## Copied from #343:
During the accessibility audit #341 several issues were identified concerning poor color contrast:
- [x] ~~registration screen: text field label (light blue on white/black background) > !213 .~~
- [x] ~~settings/change password screen: text field labels (light blue on white) > !213 .~~
- [x] ~~settings screen: "change password" button (light blue on white/black) > !213 .~~
- [x] ~~registration screen: "next" button (black text color on blue/gray (disabled) button) > already fixed on current `main`~~
- [ ] registration screen: visual focus indicator on "show/hide password" button (light gray on white)
- [x] ~~registration screen: password strength indicator (light green on white / dark red on black) > !211 .~~
- [x] ~~registration screen: form error color (red on black) > !202 .~~
- [x] ~~message compose screen: send button (light green on white) > !212 .~~
these two issues were post-poned to #364:
- registration screen: disabled "next" button if some of the fields are not properly filled (light gray on white/black)
- settings/change password screen: disabled button (light gray on white)
as well as:
- add contact screen: close button (system-dependant window decoration, so I don't think we can/should do anything about it)https://code.briarproject.org/briar/briar-desktop/-/issues/395Prohibit i18n functions outside of Composable layer2022-09-28T11:41:18ZMikolai GütschowProhibit i18n functions outside of Composable layerFrom !240:
- [ ] @ialokim started a [discussion](https://code.briarproject.org/briar/briar-desktop/-/merge_requests/240#note_71107): (+7 comments)
> The problem with using those `i18n` calls outside of the Compose-world is that th...From !240:
- [ ] @ialokim started a [discussion](https://code.briarproject.org/briar/briar-desktop/-/merge_requests/240#note_71107): (+7 comments)
> The problem with using those `i18n` calls outside of the Compose-world is that they probably won't be re-created when the language is changed (this triggers a recomposition of the whole window, but ViewModels and thus Items will be re-used). Now that I'm seeing this, it should probably be a rule not to use `i18n` methods outside of Composables.
>
> ----
> Perhaps we could force the usage of `i18n` functions only inside composables by actually marking those as `@Composable` as well? :thinking:https://code.briarproject.org/briar/briar-desktop/-/issues/394Reconsider usage of `GlobalScope`2023-03-13T22:15:02ZMikolai GütschowReconsider usage of `GlobalScope`The following discussion from !240 should be addressed:
- [ ] @ialokim started a [discussion](https://code.briarproject.org/briar/briar-desktop/-/merge_requests/240#note_70890): (+3 comments)
> Which delicate API do you use here?
...The following discussion from !240 should be addressed:
- [ ] @ialokim started a [discussion](https://code.briarproject.org/briar/briar-desktop/-/merge_requests/240#note_70890): (+3 comments)
> Which delicate API do you use here?
>
> ----
> `GlobalScope.launch {}` which seems to be ok to use here, but if you have another idea like an injected app-wide scope, please let me know.https://code.briarproject.org/briar/briar-desktop/-/issues/393Use `rememberSaveable` wherever appropriate for Android2022-09-23T11:46:27ZMikolai GütschowUse `rememberSaveable` wherever appropriate for AndroidQuoting from !240:
- [ ] @ialokim started a [discussion](https://code.briarproject.org/briar/briar-desktop/-/merge_requests/240#note_70876): (+4 comments)
> We have always used `remember` instead of `rememberSaveable`. I know that...Quoting from !240:
- [ ] @ialokim started a [discussion](https://code.briarproject.org/briar/briar-desktop/-/merge_requests/240#note_70876): (+4 comments)
> We have always used `remember` instead of `rememberSaveable`. I know that this is needed on Android for, e.g., configuration changes. Are you aware of any consequences on Desktop though?
>
> ----
>
> No, don't know how this works on desktop. However, I'd argue best to use `rememberSaveable` everywhere where we'd want it in Android, to a) practice using it and recognizing when it is needed and b) to allow us one day to unify the UI codebases of both projects in an easier fashion.https://code.briarproject.org/briar/briar-desktop/-/issues/392Make it possible to start two testing instances on same machine that are inst...2022-10-25T08:04:52ZSebastianMake it possible to start two testing instances on same machine that are instantly connectedWe have these interactive tests that run multiple briar desktop UIs with temporary accounts such as `TestWithTwoConnectedTemporaryAccounts.kt`. They add each other as contacts, too, however that takes quite a while (for some users at lea...We have these interactive tests that run multiple briar desktop UIs with temporary accounts such as `TestWithTwoConnectedTemporaryAccounts.kt`. They add each other as contacts, too, however that takes quite a while (for some users at least, up to minutes) and makes interactive testing less efficient. I'd like to be able to make use of the internal managers and methods to establish a connection instantly.
One idea that came up was to use a special version of the LanPlugin that allows BRP (#373) however it might be easier and better maintainable to achieve this in a different manner.