briar issueshttps://code.briarproject.org/groups/briar/-/issues2022-01-18T13:43:25Zhttps://code.briarproject.org/briar/briar-desktop/-/issues/219NPE when selecting contact after another one had been selected2022-01-18T13:43:25ZTorsten GroteNPE when selecting contact after another one had been selected```
Exception in thread "main" java.lang.NullPointerException
at androidx.compose.ui.layout.SubcomposeLayoutState.disposeCurrentNodes$ui(SubcomposeLayout.kt:386)
at androidx.compose.ui.layout.SubcomposeLayoutKt$Subcompose...```
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(Unknown Source)
at java.desktop/java.awt.EventQueue.dispatchEventImpl(Unknown Source)
at java.desktop/java.awt.EventQueue$4.run(Unknown Source)
at java.desktop/java.awt.EventQueue$4.run(Unknown Source)
at java.base/java.security.AccessController.doPrivileged(Unknown Source)
at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
at java.desktop/java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.desktop/java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.desktop/java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.desktop/java.awt.EventDispatchThread.run(Unknown Source)
```https://code.briarproject.org/briar/briar-desktop/-/issues/213Use system's default theme color by default2022-05-03T16:44:51ZNicoUse system's default theme color by defaultIn !49 we allowed people to switch themes (or rather implemented a more beautiful UI for it), but in #212 we realized that this setting doesn't stick. This made me think that by default we should be using our desktop environment's defaul...In !49 we allowed people to switch themes (or rather implemented a more beautiful UI for it), but in #212 we realized that this setting doesn't stick. This made me think that by default we should be using our desktop environment's default color theme, which is at least possible on GTK with dark/light.https://code.briarproject.org/briar/briar-desktop/-/issues/211Check whether leading or trailing whitespaces are allowed for nicknames2022-01-14T17:11:13ZMikolai GütschowCheck whether leading or trailing whitespaces are allowed for nicknamessee [here](https://code.briarproject.org/briar/briar-desktop/-/merge_requests/95#note_60540): (+2 comments)see [here](https://code.briarproject.org/briar/briar-desktop/-/merge_requests/95#note_60540): (+2 comments)https://code.briarproject.org/briar/briar-desktop/-/issues/209Hardware based key encryption to strengthen passwords / 2 factor auth?2022-04-03T10:36:28ZSebastianHardware based key encryption to strengthen passwords / 2 factor auth?we currently have:
```kotlin
internal class DesktopDatabaseConfig(private val dbDir: Path, private val keyDir: Path) :
DatabaseConfig {
override fun getDatabaseDirectory(): File = dbDir.toFile()
override fun getDatabaseKey...we currently have:
```kotlin
internal class DesktopDatabaseConfig(private val dbDir: Path, private val keyDir: Path) :
DatabaseConfig {
override fun getDatabaseDirectory(): File = dbDir.toFile()
override fun getDatabaseKeyDirectory(): File = keyDir.toFile()
override fun getKeyStrengthener(): KeyStrengthener? = null
}
```
while Android supports some kind of key strengthening based on Android APIs:
```java
class AndroidKeyStrengthener implements KeyStrengthener {
private static final Logger LOG =
getLogger(AndroidKeyStrengthener.class.getName());
private static final String KEY_STORE_TYPE = "AndroidKeyStore";
private static final String PROVIDER_NAME = "AndroidKeyStore";
private static final String KEY_ALIAS = "db";
private static final int KEY_BITS = 256;
private final List<AlgorithmParameterSpec> specs;
AndroidKeyStrengthener() {
KeyGenParameterSpec noStrongBox =
new KeyGenParameterSpec.Builder(KEY_ALIAS, PURPOSE_SIGN)
.setKeySize(KEY_BITS)
.build();
if (SDK_INT >= 28) {
// Prefer StrongBox if available
KeyGenParameterSpec strongBox =
new KeyGenParameterSpec.Builder(KEY_ALIAS, PURPOSE_SIGN)
.setIsStrongBoxBacked(true)
.setKeySize(KEY_BITS)
.build();
specs = asList(strongBox, noStrongBox);
} else {
specs = singletonList(noStrongBox);
}
}
…
```
I think there are devices such as special USB-dongles that can be plugged into ordinary computers and act as such strenghteners maybe? Or something like smartcards?https://code.briarproject.org/briar/briar/-/issues/2252Password screen when setting up the account on new account - shows password w...2022-01-13T13:39:04ZIvanaPassword screen when setting up the account on new account - shows password when it should be hidden and the other way aroundSteps to execute
- Install briar debug on a device (I sued Pixel 2)
- Enter a nickname into the Nickname field when asked
- On the next screen type in the password
Expected results
- Password should be visible when they 'eye' icon is ...Steps to execute
- Install briar debug on a device (I sued Pixel 2)
- Enter a nickname into the Nickname field when asked
- On the next screen type in the password
Expected results
- Password should be visible when they 'eye' icon is on, and hidden when the 'eye' icon is crossed
Actual results
- Password behaves the other way around, it shows when the 'eye' icon is crossed, and it is masked when the 'eye' icon is not crossed.
- Screenshot attached
![device-2022-01-13-141405](/uploads/a1566f1ae139000bf68707d26a224089/device-2022-01-13-141405.png)https://code.briarproject.org/briar/briar-desktop/-/issues/202Revise some texts to make them translatable2022-04-03T10:36:31ZNicoRevise some texts to make them translatableThe following discussion from !96 should be addressed:
- [ ] @nico started a [discussion](https://code.briarproject.org/briar/briar-desktop/-/merge_requests/96#note_60230): (+4 comments)
> @ialokim I already had this in mind when ...The following discussion from !96 should be addressed:
- [ ] @nico started a [discussion](https://code.briarproject.org/briar/briar-desktop/-/merge_requests/96#note_60230): (+4 comments)
> @ialokim I already had this in mind when we first introduced this text: I think it's pretty hard to translate, since it's not a full sentence but depends on the English grammar. I'm just waiting for complaints by our translators :sweat_smile:
```
introduction.title_first=Introduce {0} to
```https://code.briarproject.org/briar/social-mesh-research/-/issues/17Write abstract2023-08-28T16:04:16ZakwizgranWrite abstractDepends on #16.Depends on #16.https://code.briarproject.org/briar/social-mesh-research/-/issues/16Write introduction2023-08-28T16:04:17ZakwizgranWrite introductionDepends on #15.Depends on #15.https://code.briarproject.org/briar/social-mesh-research/-/issues/15Write conclusion2023-08-28T16:04:17ZakwizgranWrite conclusionDepends on #1, #6, #2, #5, #14.Depends on #1, #6, #2, #5, #14.https://code.briarproject.org/briar/social-mesh-research/-/issues/14Carry out and document final evaluation of design candidates2023-08-28T16:04:17ZakwizgranCarry out and document final evaluation of design candidatesDepends on #3, #5, #13.Depends on #3, #5, #13.https://code.briarproject.org/briar/social-mesh-research/-/issues/13Carry out and document simulations for each design candidate2023-08-28T16:04:17ZakwizgranCarry out and document simulations for each design candidateDepends on #7, #8, #9, #10, #11.Depends on #7, #8, #9, #10, #11.https://code.briarproject.org/briar/social-mesh-research/-/issues/12Carry out and document baseline simulations (current architecture)2023-08-28T16:04:17ZakwizgranCarry out and document baseline simulations (current architecture)Depends on #8, #9, #10, #11.Depends on #8, #9, #10, #11.https://code.briarproject.org/briar/social-mesh-research/-/issues/11Find or create a suitable simulation framework2023-03-15T12:40:07ZakwizgranFind or create a suitable simulation frameworkDepends on #8.Depends on #8.https://code.briarproject.org/briar/social-mesh-research/-/issues/10Find or create a suitable traffic model or dataset2023-03-15T12:40:24ZakwizgranFind or create a suitable traffic model or datasetDepends on #8.Depends on #8.https://code.briarproject.org/briar/social-mesh-research/-/issues/9Find or create a suitable mobility model or dataset2023-03-15T12:40:41ZakwizgranFind or create a suitable mobility model or datasetDepends on #8.Depends on #8.https://code.briarproject.org/briar/social-mesh-research/-/issues/8Decide and document the scenarios that will be simulated2023-08-28T16:04:17ZakwizgranDecide and document the scenarios that will be simulatedDepends on #1, #3, #6.Depends on #1, #3, #6.https://code.briarproject.org/briar/social-mesh-research/-/issues/7Select the design candidates that will be simulated2023-08-28T16:04:17ZakwizgranSelect the design candidates that will be simulatedThis should be done on the basis of the initial evaluation (#5).This should be done on the basis of the initial evaluation (#5).https://code.briarproject.org/briar/social-mesh-research/-/issues/6Identify and document the design constraints2023-08-28T16:04:17ZakwizgranIdentify and document the design constraintshttps://code.briarproject.org/briar/social-mesh-research/-/issues/5Carry out and document initial evaluation of design candidates2023-08-28T16:04:17ZakwizgranCarry out and document initial evaluation of design candidatesSome candidates may be ruled out at this stage.
Depends on #1, #3, #6.Some candidates may be ruled out at this stage.
Depends on #1, #3, #6.https://code.briarproject.org/briar/social-mesh-research/-/issues/4Identify and document the design candidates2023-08-28T16:04:17ZakwizgranIdentify and document the design candidates