briar issueshttps://code.briarproject.org/groups/briar/-/issues2022-07-11T15:08:52Zhttps://code.briarproject.org/briar/briar-mailbox/-/issues/107Crash when creating database on Android 42022-07-11T15:08:52ZakwizgranCrash when creating database on Android 4* Android version: 4.2.2
* Phone model: Huawei Ascend Y330
Stacktrace:
```
2022-04-27 12:54:22.506 3426-3618/org.briarproject.mailbox E/AndroidRuntime: FATAL EXCEPTION: Thread-370
org.briarproject.mailbox.core.db.DbException: org.h2...* Android version: 4.2.2
* Phone model: Huawei Ascend Y330
Stacktrace:
```
2022-04-27 12:54:22.506 3426-3618/org.briarproject.mailbox E/AndroidRuntime: FATAL EXCEPTION: Thread-370
org.briarproject.mailbox.core.db.DbException: org.h2.jdbc.JdbcSQLNonTransientException: General error: "java.lang.NoClassDefFoundError: java.nio.charset.StandardCharsets" [50000-200]
at org.briarproject.mailbox.core.db.JdbcDatabase.startTransaction(JdbcDatabase.kt:261)
at org.briarproject.mailbox.core.db.JdbcDatabase.startTransaction(JdbcDatabase.kt:235)
at org.briarproject.mailbox.core.db.JdbcDatabase.transaction(JdbcDatabase.kt:669)
at org.briarproject.mailbox.core.db.JdbcDatabase.read(JdbcDatabase.kt:657)
at org.briarproject.mailbox.core.db.H2Database.databaseHasSettingsTable(H2Database.kt:71)
at org.briarproject.mailbox.core.db.JdbcDatabase.open$mailbox_core(JdbcDatabase.kt:120)
at org.briarproject.mailbox.core.db.H2Database.open(H2Database.kt:64)
at org.briarproject.mailbox.core.lifecycle.LifecycleManagerImpl.startServices(LifecycleManagerImpl.kt:115)
at org.briarproject.mailbox.android.MailboxService$onCreate$1.invoke(MailboxService.kt:103)
at org.briarproject.mailbox.android.MailboxService$onCreate$1.invoke(MailboxService.kt:102)
at kotlin.concurrent.ThreadsKt$thread$thread$1.run(Thread.kt:30)
Caused by: org.h2.jdbc.JdbcSQLNonTransientException: General error: "java.lang.NoClassDefFoundError: java.nio.charset.StandardCharsets" [50000-200]
at org.h2.engine.Database.openDatabase(Database.java:333)
at org.h2.engine.Database.<init>(Database.java:301)
at org.h2.engine.Engine.openSession(Engine.java:74)
at org.h2.engine.Engine.openSession(Engine.java:192)
at org.h2.engine.Engine.createSessionAndValidate(Engine.java:171)
at org.h2.engine.Engine.createSession(Engine.java:166)
at org.h2.engine.Engine.createSession(Engine.java:29)
at org.h2.engine.SessionRemote.connectEmbeddedOrServer(SessionRemote.java:340)
at org.h2.jdbc.JdbcConnection.<init>(JdbcConnection.java:173)
at org.h2.jdbc.JdbcConnection.<init>(JdbcConnection.java:152)
at org.h2.Driver.connect(Driver.java:69)
at java.sql.DriverManager.getConnection(DriverManager.java:175)
at org.briarproject.mailbox.core.db.H2Database.createConnection(H2Database.kt:115)
at org.briarproject.mailbox.core.db.JdbcDatabase.startTransaction(JdbcDatabase.kt:254)
at org.briarproject.mailbox.core.db.JdbcDatabase.startTransaction(JdbcDatabase.kt:235)
at org.briarproject.mailbox.core.db.JdbcDatabase.transaction(JdbcDatabase.kt:669)
at org.briarproject.mailbox.core.db.JdbcDatabase.read(JdbcDatabase.kt:657)
at org.briarproject.mailbox.core.db.H2Database.databaseHasSettingsTable(H2Database.kt:71)
at org.briarproject.mailbox.core.db.JdbcDatabase.open$mailbox_core(JdbcDatabase.kt:120)
at org.briarproject.mailbox.core.db.H2Database.open(H2Database.kt:64)
at org.briarproject.mailbox.core.lifecycle.LifecycleManagerImpl.startServices(LifecycleManagerImpl.kt:115)
at org.briarproject.mailbox.android.MailboxService$onCreate$1.invoke(MailboxService.kt:103)
at org.briarproject.mailbox.android.MailboxService$onCreate$1.invoke(MailboxService.kt:102)
at kotlin.concurrent.ThreadsKt$thread$thread$1.run(Thread.kt:30)
Caused by: java.lang.NoClassDefFoundError: java.nio.charset.StandardCharsets
at org.h2.mvstore.MVStore.writeStoreHeader(MVStore.java:1096)
at org.h2.mvstore.MVStore.<init>(MVStore.java:390)
at org.h2.mvstore.MVStore$Builder.open(MVStore.java:3579)
at org.h2.mvstore.db.MVTableEngine$Store.open(MVTableEngine.java:170)
at org.h2.mvstore.db.MVTableEngine.init(MVTableEngine.java:103)
at org.h2.engine.Database.getPageStore(Database.java:2659)
at org.h2.engine.Database.open(Database.java:675)
at org.h2.engine.Database.openDatabase(Database.java:307)
at org.h2.engine.Database.<init>(Database.java:301)
at org.h2.engine.Engine.openSession(Engine.java:74)
at org.h2.engine.Engine.openSession(Engine.java:192)
at org.h2.engine.Engine.createSessionAndValidate(Engine.java:171)
at org.h2.engine.Engine.createSession(Engine.java:166)
at org.h2.engine.Engine.createSession(Engine.java:29)
at org.h2.engine.SessionRemote.connectEmbeddedOrServer(SessionRemote.java:340)
at org.h2.jdbc.JdbcConnection.<init>(JdbcConnection.java:173)
at org.h2.jdbc.JdbcConnection.<init>(JdbcConnection.java:152)
at org.h2.Driver.connect(Driver.java:69)
at java.sql.DriverManager.getConnection(DriverManager.java:175)
at org.briarproject.mailbox.core.db.H2Database.createConnection(H2Database.kt:115)
at org.briarproject.mailbox.core.db.JdbcDatabase.startTransaction(JdbcDatabase.kt:254)
at org.briarproject.mailbox.core.db.JdbcDatabase.startTransaction(JdbcDatabase.kt:235)
at org.briarproject.mailbox.core.db.JdbcDatabase.transaction(JdbcDatabase.kt:669)
at org.briarproject.mailbox.core.db.JdbcDatabase.read(JdbcDatabase.kt:657)
at org.briarproject.mailbox.core.db.H2Database.databaseHasSettingsTable(H2Database.kt:71)
at org.briarproject.mailbox.core.db.JdbcDatabase.open$mailbox_core(JdbcDatabase.kt:120)
at org.briarproject.mailbox.core.db.H2Database.open(H2Database.kt:64)
at org.briarproject.mailbox.core.lifecycle.LifecycleManagerImpl.startServices(LifecycleManagerImpl.kt:115)
at org.briarproject.mailbox.android.MailboxService$onCreate$1.invoke(MailboxService.kt:103)
at org.briarproject.mailbox.android.MailboxService$onCreate$1.invoke(MailboxService.kt:102)
at kotlin.concurrent.ThreadsKt$thread$thread$1.run(Thread.kt:30)
```
Looks like the crash ultimately comes from H2's MVStore#writeStoreHeader():
```
byte[] bytes = buff.toString().getBytes(StandardCharsets.ISO_8859_1);
```
StandardCharsets was added in Java 7, so it won't be available on Android < 7. Looks like we might need to downgrade H2 to the same version we're using for Briar.
Incidentally there's a Soup Nazi reference in the StandardCharsets source. :-)Mailbox: Databaseakwizgranakwizgranhttps://code.briarproject.org/briar/briar-mailbox/-/issues/108Crash when creating QR code on Android 42022-05-02T16:05:25ZakwizgranCrash when creating QR code on Android 4* Android version: 4.2.2
* Phone model: Huawei Ascend Y330
Stacktrace:
```
2022-04-27 13:10:25.532 4318-4318/org.briarproject.mailbox E/AndroidRuntime: FATAL EXCEPTION: main
java.lang.NoClassDefFoundError: java.nio.charset.StandardC...* Android version: 4.2.2
* Phone model: Huawei Ascend Y330
Stacktrace:
```
2022-04-27 13:10:25.532 4318-4318/org.briarproject.mailbox E/AndroidRuntime: FATAL EXCEPTION: main
java.lang.NoClassDefFoundError: java.nio.charset.StandardCharsets
at dev.keiji.util.Base32$Decoder.decode(Base32.java:206)
at dev.keiji.util.Base32.decode(Base32.java:87)
at org.briarproject.mailbox.core.setup.QrCodeEncoder.getHiddenServiceBytes(QrCodeEncoder.kt:76)
at org.briarproject.mailbox.core.setup.QrCodeEncoder.getQrCodeBytes(QrCodeEncoder.kt:53)
at org.briarproject.mailbox.core.setup.QrCodeEncoder.getQrCodeBitMatrix(QrCodeEncoder.kt:46)
at org.briarproject.mailbox.android.ui.MailboxViewModel$setupState$1.invokeSuspend(MailboxViewModel.kt:97)
at org.briarproject.mailbox.android.ui.MailboxViewModel$setupState$1.invoke(MailboxViewModel.kt)
at org.briarproject.mailbox.android.ui.MailboxViewModel$setupState$1.invoke(MailboxViewModel.kt)
at kotlinx.coroutines.flow.FlowKt__ZipKt$combine$$inlined$combineUnsafe$FlowKt__ZipKt$1$2.invokeSuspend(Zip.kt:333)
at kotlinx.coroutines.flow.FlowKt__ZipKt$combine$$inlined$combineUnsafe$FlowKt__ZipKt$1$2.invoke(Zip.kt)
at kotlinx.coroutines.flow.FlowKt__ZipKt$combine$$inlined$combineUnsafe$FlowKt__ZipKt$1$2.invoke(Zip.kt)
at kotlinx.coroutines.flow.internal.CombineKt$combineInternal$2.invokeSuspend(Combine.kt:79)
at kotlinx.coroutines.flow.internal.CombineKt$combineInternal$2.invoke(Combine.kt)
at kotlinx.coroutines.flow.internal.CombineKt$combineInternal$2.invoke(Combine.kt)
at kotlinx.coroutines.intrinsics.UndispatchedKt.startUndispatchedOrReturn(Undispatched.kt:89)
at kotlinx.coroutines.flow.internal.FlowCoroutineKt.flowScope(FlowCoroutine.kt:33)
at kotlinx.coroutines.flow.internal.CombineKt.combineInternal(Combine.kt:22)
at kotlinx.coroutines.flow.FlowKt__ZipKt$combine$$inlined$combineUnsafe$FlowKt__ZipKt$1.collect(SafeCollector.common.kt:113)
at kotlinx.coroutines.flow.internal.ChannelFlowOperatorImpl.flowCollect(ChannelFlow.kt:195)
at kotlinx.coroutines.flow.internal.ChannelFlowOperator.collectTo$suspendImpl(ChannelFlow.kt:157)
at kotlinx.coroutines.flow.internal.ChannelFlowOperator.collectTo(ChannelFlow.kt)
at kotlinx.coroutines.flow.internal.ChannelFlow$collectToFun$1.invokeSuspend(ChannelFlow.kt:60)
at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:106)
at kotlinx.coroutines.scheduling.CoroutineScheduler.runSafely(CoroutineScheduler.kt:571)
at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.executeTask(CoroutineScheduler.kt:750)
at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker(CoroutineScheduler.kt:678)
at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:665)
```Mailbox: Pairingakwizgranakwizgranhttps://code.briarproject.org/briar/briar-mailbox/-/issues/109Crash when showing pairing success screen on Android 42022-07-13T11:43:04ZakwizgranCrash when showing pairing success screen on Android 4* Android version: 4.2.2
* Phone model: Huawei Ascend Y330
Stacktrace:
```
2022-04-27 13:49:32.281 6799-6799/org.briarproject.mailbox E/AndroidRuntime: FATAL EXCEPTION: main
android.view.InflateException: Binary XML file line #22: E...* Android version: 4.2.2
* Phone model: Huawei Ascend Y330
Stacktrace:
```
2022-04-27 13:49:32.281 6799-6799/org.briarproject.mailbox E/AndroidRuntime: FATAL EXCEPTION: main
android.view.InflateException: Binary XML file line #22: Error inflating class ImageView
at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:704)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:746)
at android.view.LayoutInflater.inflate(LayoutInflater.java:489)
at android.view.LayoutInflater.inflate(LayoutInflater.java:396)
at org.briarproject.mailbox.android.ui.SetupCompleteFragment.onCreateView(SetupCompleteFragment.kt:45)
at androidx.fragment.app.Fragment.performCreateView(Fragment.java:2995)
at androidx.fragment.app.FragmentStateManager.createView(FragmentStateManager.java:523)
at androidx.fragment.app.FragmentStateManager.moveToExpectedState(FragmentStateManager.java:261)
at androidx.fragment.app.FragmentManager.executeOpsTogether(FragmentManager.java:1840)
at androidx.fragment.app.FragmentManager.removeRedundantOperationsAndExecute(FragmentManager.java:1764)
at androidx.fragment.app.FragmentManager.execPendingActions(FragmentManager.java:1701)
at androidx.fragment.app.FragmentManager$4.run(FragmentManager.java:488)
at android.os.Handler.handleCallback(Handler.java:800)
at android.os.Handler.dispatchMessage(Handler.java:100)
at android.os.Looper.loop(Looper.java:194)
at android.app.ActivityThread.main(ActivityThread.java:5455)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:525)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:966)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:733)
at dalvik.system.NativeStart.main(Native Method)
Caused by: android.content.res.Resources$NotFoundException: File res/drawable/ic_success.xml from drawable resource ID #0x7f070081
at android.content.res.Resources.loadDrawable(Resources.java:2055)
at android.content.res.ResourcesEx.loadDrawable(ResourcesEx.java:580)
at android.content.res.TypedArray.getDrawable(TypedArray.java:609)
at android.widget.ImageView.<init>(ImageView.java:120)
at androidx.appcompat.widget.AppCompatImageView.<init>(AppCompatImageView.java:78)
at androidx.appcompat.widget.AppCompatImageView.<init>(AppCompatImageView.java:73)
at androidx.appcompat.app.AppCompatViewInflater.createImageView(AppCompatViewInflater.java:206)
at androidx.appcompat.app.AppCompatViewInflater.createView(AppCompatViewInflater.java:125)
at androidx.appcompat.app.AppCompatDelegateImpl.createView(AppCompatDelegateImpl.java:1566)
at androidx.appcompat.app.AppCompatDelegateImpl.onCreateView(AppCompatDelegateImpl.java:1617)
at android.view.LayoutInflater$FactoryMerger.onCreateView(LayoutInflater.java:171)
at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:675)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:746)
at android.view.LayoutInflater.inflate(LayoutInflater.java:489)
at android.view.LayoutInflater.inflate(LayoutInflater.java:396)
at org.briarproject.mailbox.android.ui.SetupCompleteFragment.onCreateView(SetupCompleteFragment.kt:45)
at androidx.fragment.app.Fragment.performCreateView(Fragment.java:2995)
at androidx.fragment.app.FragmentStateManager.createView(FragmentStateManager.java:523)
at androidx.fragment.app.FragmentStateManager.moveToExpectedState(FragmentStateManager.java:261)
at androidx.fragment.app.FragmentManager.executeOpsTogether(FragmentManager.java:1840)
at androidx.fragment.app.FragmentManager.removeRedundantOperationsAndExecute(FragmentManager.java:1764)
at androidx.fragment.app.FragmentManager.execPendingActions(FragmentManager.java:1701)
at androidx.fragment.app.FragmentManager$4.run(FragmentManager.java:488)
at android.os.Handler.handleCallback(Handler.java:800)
at android.os.Handler.dispatchMessage(Handler.java:100)
at android.os.Looper.loop(Looper.java:194)
at android.app.ActivityThread.main(ActivityThread.java:5455)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:525)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:966)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:733)
at dalvik.system.NativeStart.main(Native Method)
Caused by: org.xmlpull.v1.XmlPullParserException: Binary XML file line #5: invalid drawable tag vector
at android.graphics.drawable.Drawable.createFromXmlInner(Drawable.java:881)
at android.graphics.drawable.Drawable.createFromXml(Drawable.java:822)
at android.content.res.Resources.loadDrawable(Resources.java:2052)
at android.content.res.ResourcesEx.loadDrawable(ResourcesEx.java:580)
at android.content.res.TypedArray.getDrawable(TypedArray.java:609)
at android.widget.ImageView.<init>(ImageView.java:120)
at androidx.appcompat.widget.AppCompatImageView.<init>(AppCompatImageView.java:78)
at androidx.appcompat.widget.AppCompatImageView.<init>(AppCompatImageView.java:73)
at androidx.appcompat.app.AppCompatViewInflater.createImageView(AppCompatViewInflater.java:206)
at androidx.appcompat.app.AppCompatViewInflater.createView(AppCompatViewInflater.java:125)
at androidx.appcompat.app.AppCompatDelegateImpl.createView(AppCompatDelegateImpl.java:1566)
at androidx.appcompat.app.AppCompatDelegateImpl.onCreateView(AppCompatDelegateImpl.java:1617)
at android.view.LayoutInflater$FactoryMerger.onCreateView(LayoutInflater.java:171)
at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:675)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:746)
at android.view.LayoutInflater.inflate(LayoutInflater.java:489)
at android.view.LayoutInflater.inflate(LayoutInflater.java:396)
at org.briarproject.mailbox.android.ui.SetupCompleteFragment.onCreateView(SetupCompleteFragment.kt:45)
at androidx.fragment.app.Fragment.performCreateView(Fragment.java:2995)
at androidx.fragment.app.FragmentStateManager.createView(FragmentStateManager.java:523)
at androidx.fragment.app.FragmentStateManager.moveToExpectedState(FragmentStateManager.java:261)
at androidx.fragment.app.FragmentManager.executeOpsTogether(FragmentManager.java:1840)
at androidx.fragment.app.FragmentManager.removeRedundantOperationsAndExecute(FragmentManager.java:1764)
at androidx.fragment.app.FragmentManager.execPendingActions(FragmentManager.java:1701)
at androidx.fragment.app.FragmentManager$4.run(FragmentManager.java:488)
at android.os.Handler.handleCallback(Handler.java:800)
at android.os.Handler.dispatchMessage(Handler.java:100)
at android.os.Looper.loop(Looper.java:194)
at android.app.ActivityThread.main(ActivityThread.java:5455)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:525)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:966)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:733)
at dalvik.system.NativeStart.main(Native Method)
```Mailbox: PairingTorsten GroteTorsten Grotehttps://code.briarproject.org/briar/briar-mailbox/-/issues/110Show more progress information during startup2022-05-16T14:01:22ZakwizgranShow more progress information during startupIt can sometimes take several minutes for Tor to bootstrap, especially on the first run. Let's show more information (such as the bootstrap percentage) so the user can see that something's happening.It can sometimes take several minutes for Tor to bootstrap, especially on the first run. Let's show more information (such as the bootstrap percentage) so the user can see that something's happening.Mailbox: TorTorsten GroteTorsten Grotehttps://code.briarproject.org/briar/briar/-/issues/2312Briar fails to start if clock was unreasonably wrong on first run2022-05-11T14:23:37ZakwizgranBriar fails to start if clock was unreasonably wrong on first runSteps to reproduce:
* If a Briar account exists, delete it
* Set the system clock to a date before 1 Jan 2021
* Launch Briar and create an account
* Briar will show the startup failure screen due to the clock being wrong
* Set the system...Steps to reproduce:
* If a Briar account exists, delete it
* Set the system clock to a date before 1 Jan 2021
* Launch Briar and create an account
* Briar will show the startup failure screen due to the clock being wrong
* Set the system clock to the right date
* Launch Briar again
* The password screen will be shown
* Enter the password
* Briar will show the startup failure screen, saying the database is corrupt
Log snippet from the second run (after correcting the clock):
```
2022-04-27 08:54:55.872 22506-22542/org.briarproject.briar.android.debug I/H2Database: Contents of account directory before opening DB:
2022-04-27 08:54:55.872 22506-22542/org.briarproject.briar.android.debug I/H2Database: D /data/data/org.briarproject.briar.android.debug 4096
2022-04-27 08:54:55.872 22506-22542/org.briarproject.briar.android.debug I/H2Database: D /data/data/org.briarproject.briar.android.debug/lib 4096
2022-04-27 08:54:55.882 22506-22542/org.briarproject.briar.android.debug I/H2Database: F /data/data/org.briarproject.briar.android.debug/lib/libobfs4proxy.so 6481961
2022-04-27 08:54:55.882 22506-22542/org.briarproject.briar.android.debug I/H2Database: F /data/data/org.briarproject.briar.android.debug/lib/libtor.so 5957620
2022-04-27 08:54:55.882 22506-22542/org.briarproject.briar.android.debug I/H2Database: D /data/data/org.briarproject.briar.android.debug/cache 4096
2022-04-27 08:54:55.882 22506-22542/org.briarproject.briar.android.debug I/H2Database: D /data/data/org.briarproject.briar.android.debug/cache/com.android.renderscript.cache 4096
2022-04-27 08:54:55.882 22506-22542/org.briarproject.briar.android.debug I/H2Database: D /data/data/org.briarproject.briar.android.debug/shared_prefs 4096
2022-04-27 08:54:55.892 22506-22542/org.briarproject.briar.android.debug I/H2Database: F /data/data/org.briarproject.briar.android.debug/shared_prefs/org.briarproject.briar.android.debug_preferences.xml 115
2022-04-27 08:54:55.892 22506-22542/org.briarproject.briar.android.debug I/H2Database: F /data/data/org.briarproject.briar.android.debug/shared_prefs/_has_set_default_values.xml 126
2022-04-27 08:54:55.892 22506-22542/org.briarproject.briar.android.debug I/H2Database: F /data/data/org.briarproject.briar.android.debug/shared_prefs/db.xml 65
2022-04-27 08:54:55.892 22506-22542/org.briarproject.briar.android.debug I/H2Database: D /data/data/org.briarproject.briar.android.debug/app_key 4096
2022-04-27 08:54:55.892 22506-22542/org.briarproject.briar.android.debug I/H2Database: F /data/data/org.briarproject.briar.android.debug/app_key/db.key.bak 218
2022-04-27 08:54:55.892 22506-22542/org.briarproject.briar.android.debug I/H2Database: F /data/data/org.briarproject.briar.android.debug/app_key/db.key 218
2022-04-27 08:54:55.902 22506-22542/org.briarproject.briar.android.debug I/H2Database: D /data/data/org.briarproject.briar.android.debug/app_db 4096
2022-04-27 08:54:55.902 22506-22542/org.briarproject.briar.android.debug I/H2Database: D /data/data/org.briarproject.briar.android.debug/app_tor 4096
2022-04-27 08:54:55.902 22506-22542/org.briarproject.briar.android.debug I/H2Database: Reopening DB: false
```
Stacktrace:
```
2022-04-27 08:55:00.046 22506-22542/org.briarproject.briar.android.debug W/LifecycleManagerImpl: org.briarproject.bramble.api.db.DbException
org.briarproject.bramble.api.db.DbException
at org.briarproject.bramble.identity.IdentityManagerImpl.loadIdentityWithKeyPair(IdentityManagerImpl.java:159)
at org.briarproject.bramble.identity.IdentityManagerImpl.getCachedIdentity(IdentityManagerImpl.java:147)
at org.briarproject.bramble.identity.IdentityManagerImpl.onDatabaseOpened(IdentityManagerImpl.java:95)
at org.briarproject.bramble.lifecycle.LifecycleManagerImpl.lambda$startServices$0(LifecycleManagerImpl.java:129)
at org.briarproject.bramble.lifecycle.LifecycleManagerImpl.$r8$lambda$R30tTgoiROvN8ROsUbPogFK9rjY(LifecycleManagerImpl.java)
at org.briarproject.bramble.lifecycle.LifecycleManagerImpl$$ExternalSyntheticLambda0.run(Unknown Source)
at org.briarproject.bramble.db.DatabaseComponentImpl.transaction(DatabaseComponentImpl.java:200)
at org.briarproject.bramble.lifecycle.LifecycleManagerImpl.startServices(LifecycleManagerImpl.java:123)
at org.briarproject.briar.android.BriarService.lambda$onCreate$0(BriarService.java:141)
at org.briarproject.briar.android.BriarService.$r8$lambda$HDU85pNkqbcIvjlH9WM8JDDv2bo(BriarService.java)
at org.briarproject.briar.android.BriarService$$ExternalSyntheticLambda5.run(Unknown Source)
at org.briarproject.bramble.system.AndroidWakeLockManagerImpl.lambda$executeWakefully$1(AndroidWakeLockManagerImpl.java:95)
at org.briarproject.bramble.system.AndroidWakeLockManagerImpl.$r8$lambda$HU3N-m0ADiLNH1gKAKkCiyTw2fM(AndroidWakeLockManagerImpl.java)
at org.briarproject.bramble.system.AndroidWakeLockManagerImpl$$ExternalSyntheticLambda0.run(Unknown Source)
at java.lang.Thread.run(Thread.java:856)
```
It looks like the DB key was saved on the first run but the DB wasn't created. On the second run we assumed an identity had already been created so we didn't store one, and then we got an exception when trying to load an identity from the newly created DB.Android 1.4https://code.briarproject.org/briar/briar-mailbox/-/issues/111No progress indicator during startup on Android 52022-04-29T15:20:10ZakwizgranNo progress indicator during startup on Android 5* Android version: 5.1
* Phone model: Motorola Moto G 4G
The progress indicator doesn't appear when starting Tor.
![Screenshot_20220427_164556](/uploads/ba5bc0f7765db257b34228ecf2201e45/Screenshot_20220427_164556.png)* Android version: 5.1
* Phone model: Motorola Moto G 4G
The progress indicator doesn't appear when starting Tor.
![Screenshot_20220427_164556](/uploads/ba5bc0f7765db257b34228ecf2201e45/Screenshot_20220427_164556.png)MailboxSebastianSebastianhttps://code.briarproject.org/briar/briar-mailbox/-/issues/112Success indicator is a blank green circle on Android 52022-07-13T11:38:19ZakwizgranSuccess indicator is a blank green circle on Android 5* Android version: 5.1
* Phone model: Motorola Moto G 4G
After pairing with Briar, the success indicator is a blank green circle instead of a checkmark. Possibly related to #109?
![Screenshot_20220427_165041](/uploads/212ff92ee9d0ad7c7...* Android version: 5.1
* Phone model: Motorola Moto G 4G
After pairing with Briar, the success indicator is a blank green circle instead of a checkmark. Possibly related to #109?
![Screenshot_20220427_165041](/uploads/212ff92ee9d0ad7c76095ae624c96c6c/Screenshot_20220427_165041.png)Mailbox: PairingTorsten GroteTorsten Grotehttps://code.briarproject.org/briar/briar/-/issues/2313Move share app offline button to main side view (navigation menu)2022-04-28T11:45:13ZFlyingP1g FlyingP1gMove share app offline button to main side view (navigation menu)Why is share app offline button in the Settings?
I think it would be better and more natural to have that option in the main side view(navigation menu), not in the settings.
Also someone from matrix briar server was searching for share o...Why is share app offline button in the Settings?
I think it would be better and more natural to have that option in the main side view(navigation menu), not in the settings.
Also someone from matrix briar server was searching for share offline option and wasn't able to find it(It was about a week ago).https://code.briarproject.org/briar/briar/-/issues/2314Usability testing for mailbox connection issues2022-11-29T14:08:07ZakwizgranUsability testing for mailbox connection issuesTest that users understand Briar's mailbox status screen (#2172) and can use it to check whether the mailbox is reachable. Test that users understand the UX that warns about the mailbox being repeatedly unreachable (#2175), and that they...Test that users understand Briar's mailbox status screen (#2172) and can use it to check whether the mailbox is reachable. Test that users understand the UX that warns about the mailbox being repeatedly unreachable (#2175), and that they can use the troubleshooting wizard to resolve issues (#2309).Mailbox: Usability testinghttps://code.briarproject.org/briar/briar/-/issues/2315Usability testing for mailbox setup and pairing2022-11-29T14:07:35ZakwizgranUsability testing for mailbox setup and pairingTest whether users understand that the Mailbox app needs to be installed on a separate device, and whether they're able to set up the Mailbox app and pair it with Briar.Test whether users understand that the Mailbox app needs to be installed on a separate device, and whether they're able to set up the Mailbox app and pair it with Briar.Mailbox: Usability testinghttps://code.briarproject.org/briar/briar/-/issues/2316Usability testing for Mailbox app2023-01-19T13:03:49ZakwizgranUsability testing for Mailbox appAfter setup and pairing (#2315), test that users understand the information provided on the Mailbox app's status screen, are aware that the Mailbox device needs to remain connected to power and internet, and can understand and use the st...After setup and pairing (#2315), test that users understand the information provided on the Mailbox app's status screen, are aware that the Mailbox device needs to remain connected to power and internet, and can understand and use the stop, restart and unlink actions.Mailbox: Usability testinghttps://code.briarproject.org/briar/briar-mailbox/-/issues/116Usability testing for Mailbox app2022-11-30T11:05:08ZakwizgranUsability testing for Mailbox appAfter setup and pairing (briar#2315), test that users understand the information provided on the Mailbox app's status screen, are aware that the Mailbox device needs to remain connected to power and internet, and can understand and use t...After setup and pairing (briar#2315), test that users understand the information provided on the Mailbox app's status screen, are aware that the Mailbox device needs to remain connected to power and internet, and can understand and use the stop, restart and unlink actions.Mailbox: Usability testingRenata GegajRenata Gegajhttps://code.briarproject.org/briar/dont-kill-me-lib/-/issues/2Research whether interpolating app names into library strings would cause loc...2022-05-05T16:03:09ZakwizgranResearch whether interpolating app names into library strings would cause localisation issueshttps://code.briarproject.org/briar/briar/-/merge_requests/1636#note_65779https://code.briarproject.org/briar/briar/-/merge_requests/1636#note_65779https://code.briarproject.org/briar/briar-desktop/-/issues/343Improve color contrast2022-09-27T08:10:08ZMikolai GütschowImprove color contrastDuring 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 fi...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)Mikolai GütschowMikolai Gütschowhttps://code.briarproject.org/briar/briar-desktop/-/issues/344Hidden expiration banner is displayed again when changing language/theme2022-05-03T15:48:13ZMikolai GütschowHidden expiration banner is displayed again when changing language/themeSince we are invalidating the whole screen, the hidden banner state is lost.Since we are invalidating the whole screen, the hidden banner state is lost.https://code.briarproject.org/briar/briar-desktop/-/issues/345Expiration Banner hide animation shows white background even on black theme2022-05-11T08:01:13ZMikolai GütschowExpiration Banner hide animation shows white background even on black themeWe probably have to check that we set the background color at the highest possible node in the UI tree.
![vlcsnap-2022-05-03-18h30m53s761](/uploads/7b053925d4dbdd5ad94a698f35236746/vlcsnap-2022-05-03-18h30m53s761.png)We probably have to check that we set the background color at the highest possible node in the UI tree.
![vlcsnap-2022-05-03-18h30m53s761](/uploads/7b053925d4dbdd5ad94a698f35236746/vlcsnap-2022-05-03-18h30m53s761.png)Desktop 0.2.1Mikolai GütschowMikolai Gütschowhttps://code.briarproject.org/briar/briar/-/issues/2317Restarting app quickly after startup failure sometimes does not work2022-05-04T10:43:53ZSebastianRestarting app quickly after startup failure sometimes does not workhttps://code.briarproject.org/briar/briar-mailbox/-/issues/117Status screen should warn when device is offline2022-07-13T11:08:17ZakwizgranStatus screen should warn when device is offlineAfter setup is complete, the status screen should monitor connectivity changes and show a warning when the device is offline.
The text used for the warning should be synced with the text in Briar's troubleshooting wizard (briar#2309).After setup is complete, the status screen should monitor connectivity changes and show a warning when the device is offline.
The text used for the warning should be synced with the text in Briar's troubleshooting wizard (briar#2309).Mailbox: Status UI for Mailbox apphttps://code.briarproject.org/briar/briar-mailbox/-/issues/119Allow navigating back to onboarding activity2023-08-28T16:00:09ZIvanaAllow navigating back to onboarding activityA question arose during the testing of the implementation of #32
The context: When a user installs the app, the first screen they see gives them two options: either skip intro, or walk through intro.
If the user skips intro, then the...A question arose during the testing of the implementation of #32
The context: When a user installs the app, the first screen they see gives them two options: either skip intro, or walk through intro.
If the user skips intro, then they see the do-not-kill-me fragment, which asks them to "Allow connections"... ithout tapping on that button they cannot continue, as the "Continue button" is disabled.
If the user does skip the intro, this is the next screen they see. If the user tries to navigate back, they are kicked out of the app. This may be OK, as the only previous screen is the 'home' screen? Or should the user be able to navigate back to it?
If the user does not skip the intro, they can navigate back and forth between the 4 intro screens, which is OK. However, after the 4th intro screen, the 'do not kill me' fragment is shown to them, and from there they cannot navigate back. A user may want to navigate back if they accidentally pressed the Continue button on the previous screen before thye properly read the contents? But if the user tries to navigate back to the previous screen, they are kicked out of the app.
To be considered: is the navigation back from the 'do not kill me' to the previous screen something that we would want to see implemented? Or not?
In any case, this is a Low priority now, because it is not necessary for the first version of the product. If the decision is made to address this and implement it, then it is a nice to have for the first version - ie only to be implemented if we have lots of time to spare. At the moment **NOT SPONSOR6**
If the decision is made to not implement it even in future releases, then this ticket can be closed.https://code.briarproject.org/briar/briar-mailbox/-/issues/120Battery optimisation setting - should the user be informed if it is reset (by...2022-08-01T13:45:34ZIvanaBattery optimisation setting - should the user be informed if it is reset (by device itself or user)?IN the call on 9 May 22, we talked about what to do (if anything) if the battery optimisation setting is reset to 'on' for the mailbox app?
When mailbox app is installed, the button "Allow connections" on the do-not-kill-me fragment, s...IN the call on 9 May 22, we talked about what to do (if anything) if the battery optimisation setting is reset to 'on' for the mailbox app?
When mailbox app is installed, the button "Allow connections" on the do-not-kill-me fragment, sets the Batter optimisation setting to 'off' - this is the same as on Briar app.
However if this setting somehow gets reset, either by user or by device, it could mean that the device would then kill the mailbox app due to excessive battery usage (as judged by the device). This could mean that the mailbox would not be reachable, but the user may not be aware of this.
The question then arises: should the user somehow be informed that their battery optimisation setting has been reset, and that may affect the correct functioning of the mailbox app? (The same question could apply to Briar as well?)
If so, what kinds of message should be shown and when? And how many times?
This is** NOT SPONSOR 6 **
If this is not going to be implemented ever, then this ticket can be closed.SebastianSebastian