briar issueshttps://code.briarproject.org/groups/briar/-/issues2022-05-19T12:17:40Zhttps://code.briarproject.org/briar/briar/-/issues/2301Update contacts about change in mailbox versions that client supports2022-05-19T12:17:40ZDaniel LublinUpdate contacts about change in mailbox versions that client supportsOn startup we should compare the mailbox versions that we support against the latest mailbox properties update sent to each contact. For each contact which doesn't match, we need to send them an update with the new clientSupports.
Depen...On startup we should compare the mailbox versions that we support against the latest mailbox properties update sent to each contact. For each contact which doesn't match, we need to send them an update with the new clientSupports.
Depends on https://code.briarproject.org/briar/briar/-/issues/2261Mailbox: Sync mailbox propertiesDaniel LublinDaniel Lublinhttps://code.briarproject.org/briar/briar/-/issues/2300Show more information about startup failures2022-04-08T12:33:12ZakwizgranShow more information about startup failuresRecently we've had several reports of corrupt databases (StartResult#DB_ERROR). Because these errors prevent the app from starting, we can't use crash reports or user feedback to learn about the cause.
We should expose more information ...Recently we've had several reports of corrupt databases (StartResult#DB_ERROR). Because these errors prevent the app from starting, we can't use crash reports or user feedback to learn about the cause.
We should expose more information about startup failures in the UI. This will involve returning the information from LifecycleManager#startService() and then attaching it to the intent that launches StartupFailureActivity. StartupFailureActivity should allow the user to copy the information so they can send it to us.Android 1.4https://code.briarproject.org/briar/briar/-/issues/2297Adapt status screen when Briar is not connected to Tor2022-11-23T11:48:47ZTorsten GroteAdapt status screen when Briar is not connected to TorWe should track the Briar device's connectivity and show an appropriate status maybe similar to the screen that we show when we couldn't reach the mailbox for some time.
Related to #2175We should track the Briar device's connectivity and show an appropriate status maybe similar to the screen that we show when we couldn't reach the mailbox for some time.
Related to #2175Mailbox: Status UI for Briar appTorsten GroteTorsten Grotehttps://code.briarproject.org/briar/briar/-/issues/2285Find out whether GeoIP file is needed2022-07-18T10:27:54ZakwizgranFind out whether GeoIP file is neededIf Tor doesn't use the GeoIP file by default and we're not using any options that require it, we could reduce the size of the APK by removing it.If Tor doesn't use the GeoIP file by default and we're not using any options that require it, we could reduce the size of the APK by removing it.Android 1.4https://code.briarproject.org/briar/briar/-/issues/2284Crash in TorControlConnection#handleEvent()2022-06-06T13:14:05ZakwizgranCrash in TorControlConnection#handleEvent()While testing Briar with some extra Tor controller events, I got a crash from TorControlConnection#handleEvent(). The crash was due to the ReplyLine not containing any spaces, causing String#substring(int, int) at TorControlConnection.ja...While testing Briar with some extra Tor controller events, I got a crash from TorControlConnection#handleEvent(). The crash was due to the ReplyLine not containing any spaces, causing String#substring(int, int) at TorControlConnection.java line 218 to throw an exception when -1 was passed as the length of the substring.
So far I haven't been able to reproduce the crash. The extra events I enabled were GUARD, NS, TRANSPORT_LAUNCHED and STATUS_GENERAL. I suspect that the STATUS_GENERAL event [DIR_ALL_UNREACHABLE](https://gitlab.torproject.org/tpo/core/torspec/-/blob/ec77ae643f3e47bea0292d125a51f8786bf33fb9/control-spec.txt#L2866) would reproduce the bug but I haven't persuaded Tor to broadcast it (again).
Once the bug can be reproduced a ticket should be opened against jtorctl.Android 1.4akwizgranakwizgranhttps://code.briarproject.org/briar/briar/-/issues/2281IllegalArgumentException when resuming NavDrawerActivity2023-03-13T13:50:06ZakwizgranIllegalArgumentException when resuming NavDrawerActivity* Android version: 8.1.0
* Phone model: Meizu 16th (meizu_16th_CN)
* Briar version: 1.4.5 (4df523a)
Edited log:
```
03-02 16:07:06.639 I/PluginViewModel: TransportStateEvent: org.briarproject.bramble.tor is ACTIVE
03-02 16:07:11.736 I/A...* Android version: 8.1.0
* Phone model: Meizu 16th (meizu_16th_CN)
* Briar version: 1.4.5 (4df523a)
Edited log:
```
03-02 16:07:06.639 I/PluginViewModel: TransportStateEvent: org.briarproject.bramble.tor is ACTIVE
03-02 16:07:11.736 I/AndroidNetworkManager: Received broadcast android.intent.action.SCREEN_OFF
03-02 16:07:12.294 I/AndroidNetworkManager: Received broadcast android.intent.action.SCREEN_ON
3-02 16:07:14.655 I/BaseActivity: Starting NavDrawerActivity
03-02 16:07:14.999 I/BaseActivity: Stopping NavDrawerActivity
03-02 16:07:18.771 I/AndroidNetworkManager: Received broadcast android.intent.action.SCREEN_OFF
03-02 16:07:19.751 I/BaseActivity: Starting NavDrawerActivity
03-02 16:07:19.753 I/BaseActivity: Resuming NavDrawerActivity
03-02 16:07:19.954 I/AndroidNetworkManager: Received broadcast android.intent.action.SCREEN_ON
03-02 16:07:21.559 I/BaseActivity: Pausing NavDrawerActivity
03-02 16:07:22.150 I/BaseActivity: Stopping NavDrawerActivity
03-02 16:07:23.976 I/BaseActivity: Starting NavDrawerActivity
03-02 16:07:23.977 I/BaseActivity: Resuming NavDrawerActivity
```
Stacktrace:
```
java.lang.IllegalArgumentException: View=DecorView@4228967[] not attached to window manager
at android.view.WindowManagerGlobal.findViewLocked(WindowManagerGlobal.java:488)
at android.view.WindowManagerGlobal.updateViewLayout(WindowManagerGlobal.java:383)
at android.view.WindowManagerImpl.updateViewLayout(WindowManagerImpl.java:101)
at android.app.ActivityThread.handleResumeActivity(ActivityThread.java:3952)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1796)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loop(Looper.java:192)
at android.app.ActivityThread.main(ActivityThread.java:6842)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:438)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:886)
```
This looks like it's most likely a platform bug, so I'm not adding it to the current milestone for the time being.Android 1.4https://code.briarproject.org/briar/briar/-/issues/2280NPE in RemovableDriveTaskImpl2022-04-20T14:54:14ZakwizgranNPE in RemovableDriveTaskImpl* Android version: 9
* Phone model: Huawei POT-LX1
* Briar version: 1.4.5 (4df523a)
* User feedback: "Doesn't work without internet."
Log:
```
03-01 07:20:01.142 I/BriarApplicationImpl: Created
03-01 07:20:01.187 I/BaseActivity: Creatin...* Android version: 9
* Phone model: Huawei POT-LX1
* Briar version: 1.4.5 (4df523a)
* User feedback: "Doesn't work without internet."
Log:
```
03-01 07:20:01.142 I/BriarApplicationImpl: Created
03-01 07:20:01.187 I/BaseActivity: Creating RemovableDriveActivity
03-01 07:20:01.244 I/BaseActivity: Starting RemovableDriveActivity
03-01 07:20:01.322 I/BaseActivity: Resuming RemovableDriveActivity
03-01 07:20:01.322 I/BriarActivity: Not signed in, launching StartupActivity
03-01 07:20:01.340 I/BaseActivity: Pausing RemovableDriveActivity
```
Stacktrace:
```
java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.Class java.lang.Object.getClass()' on a null object reference
at org.briarproject.bramble.api.nullsafety.NullSafety.requireNonNull(NullSafety.java:12)
at org.briarproject.bramble.plugin.file.RemovableDriveTaskImpl.getPlugin(RemovableDriveTaskImpl.java:78)
at org.briarproject.bramble.plugin.file.RemovableDriveReaderTask.run(RemovableDriveReaderTask.java:38)
at java.util.concurrent.ThreadPoolExecutor.processTask(ThreadPoolExecutor.java:1187)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1152)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
at java.lang.Thread.run(Thread.java:784)
```
Looks like the crash happened when relaunching the app from the recent apps list after it was killed with RemovableDriveActivity open.Android 1.4akwizgranakwizgranhttps://code.briarproject.org/briar/briar/-/issues/2277ActivityNotFoundException for GET_CONTENT intent2022-05-16T13:59:16ZakwizgranActivityNotFoundException for GET_CONTENT intentLooks similar to #2214 and #2097.
* Android version: 11
* Phone model: Samsung SM-A125F (a12nnxx)
* Briar version: 1.4.1 (6517f3f)
Stacktrace:
```
android.content.ActivityNotFoundException: No Activity found to handle Intent { act=andr...Looks similar to #2214 and #2097.
* Android version: 11
* Phone model: Samsung SM-A125F (a12nnxx)
* Briar version: 1.4.1 (6517f3f)
Stacktrace:
```
android.content.ActivityNotFoundException: No Activity found to handle Intent { act=android.intent.action.GET_CONTENT cat=[android.intent.category.OPENABLE] typ=image/* (has extras) }
at android.app.Instrumentation.checkStartActivityResult(Instrumentation.java:2080)
at android.app.Instrumentation.execStartActivity(Instrumentation.java:1727)
at android.app.Activity.startActivityForResult(Activity.java:5377)
at androidx.activity.ComponentActivity.startActivityForResult(ComponentActivity.java:574)
at androidx.core.app.ActivityCompat.startActivityForResult(ActivityCompat.java:234)
at androidx.activity.ComponentActivity$2.onLaunch(ComponentActivity.java:208)
at androidx.activity.result.ActivityResultRegistry$2.launch(ActivityResultRegistry.java:166)
at androidx.fragment.app.Fragment$9.launch(Fragment.java:3510)
at androidx.activity.result.ActivityResultLauncher.launch(ActivityResultLauncher.java:47)
at org.briarproject.briar.android.settings.SettingsFragment.lambda$onCreatePreferences$0(SettingsFragment.java:66)
at org.briarproject.briar.android.settings.SettingsFragment.lambda$onCreatePreferences$0$SettingsFragment(Unknown Source:0)
at org.briarproject.briar.android.settings.-$$Lambda$SettingsFragment$aLVt4dIN9PUOagzsIXcpqTymkBo.onPreferenceClick(Unknown Source:2)
at androidx.preference.Preference.performClick(Preference.java:1184)
at androidx.preference.Preference.performClick(Preference.java:1166)
at androidx.preference.Preference$1.onClick(Preference.java:181)
at android.view.View.performClick(View.java:8160)
at android.view.View.performClickInternal(View.java:8137)
at android.view.View.access$3700(View.java:888)
at android.view.View$PerformClick.run(View.java:30236)
at android.os.Handler.handleCallback(Handler.java:938)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:246)
at android.app.ActivityThread.main(ActivityThread.java:8528)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:602)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1130)
```Android 1.4akwizgranakwizgranhttps://code.briarproject.org/briar/briar/-/issues/2276IllegalStateException when restoring state of ConversationActivity2024-03-18T17:46:26ZakwizgranIllegalStateException when restoring state of ConversationActivity* Android version: 7.1.2
* Phone model: Samsung I9192I (lineage_serranove3gxx)
* Briar version: 1.4.4 (36670a8)
Edited log:
```
02-17 19:34:09.198 I/BaseActivity: Creating ConversationActivity
02-17 19:34:09.309 I/BaseActivity: Starting...* Android version: 7.1.2
* Phone model: Samsung I9192I (lineage_serranove3gxx)
* Briar version: 1.4.4 (36670a8)
Edited log:
```
02-17 19:34:09.198 I/BaseActivity: Creating ConversationActivity
02-17 19:34:09.309 I/BaseActivity: Starting ConversationActivity
02-17 19:34:09.330 I/BaseActivity: Resuming ConversationActivity
02-17 19:34:09.414 I/ConversationViewModel: PrivateMessageFormat loaded: TEXT_IMAGES_AUTO_DELETE
02-17 19:34:09.424 I/ImageCompressorImpl: Original image size: 600x450
02-17 19:34:09.424 I/ImageCompressorImpl: Scaling attachment by factor of 1
02-17 19:34:09.542 I/ConversationActivity: Eagerly loading text for latest message
02-17 19:34:09.668 I/ImageCompressorImpl: Compressed image to 32254 bytes, quality 50
02-17 19:34:18.123 I/BaseActivity: Pausing ConversationActivity
02-17 19:34:18.178 I/BaseActivity: Stopping ConversationActivity
02-17 19:34:18.226 I/BaseActivity: Destroying ConversationActivity
02-17 19:34:51.495 I/BaseActivity: Creating ConversationActivity
02-17 19:34:51.573 I/ConversationViewModel: PrivateMessageFormat loaded: TEXT_IMAGES_AUTO_DELETE
02-17 19:34:51.591 I/BaseActivity: Starting ConversationActivity
02-17 19:34:51.596 W/AttachmentCreatorImpl: No Task!
02-17 19:34:51.596 W/AttachmentCreatorImpl: No Result!
02-17 19:34:51.596 W/AttachmentCreatorImpl: Uris empty!
```
Stacktrace:
```
java.lang.RuntimeException: Unable to start activity ComponentInfo{org.briarproject.briar.android/org.briarproject.briar.android.conversation.ConversationActivity}: java.lang.IllegalStateException
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2684)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2751)
at android.app.ActivityThread.-wrap12(ActivityThread.java)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1496)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:154)
at android.app.ActivityThread.main(ActivityThread.java:6186)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:889)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:779)
Caused by: java.lang.IllegalStateException
at org.briarproject.briar.android.attachment.AttachmentCreatorImpl.getLiveAttachments(AttachmentCreatorImpl.java:107)
at org.briarproject.briar.android.conversation.ConversationViewModel.storeAttachments(ConversationViewModel.java:274)
at org.briarproject.briar.android.view.TextAttachmentController.onNewUris(TextAttachmentController.java:178)
at org.briarproject.briar.android.view.TextAttachmentController.onRestoreInstanceState(TextAttachmentController.java:242)
at org.briarproject.briar.android.view.TextInputView.onRestoreInstanceState(TextInputView.java:86)
at android.view.View.dispatchRestoreInstanceState(View.java:15755)
at android.view.ViewGroup.dispatchRestoreInstanceState(ViewGroup.java:3231)
at android.view.ViewGroup.dispatchRestoreInstanceState(ViewGroup.java:3237)
at android.view.ViewGroup.dispatchRestoreInstanceState(ViewGroup.java:3237)
at android.view.ViewGroup.dispatchRestoreInstanceState(ViewGroup.java:3237)
at android.view.ViewGroup.dispatchRestoreInstanceState(ViewGroup.java:3237)
at android.view.ViewGroup.dispatchRestoreInstanceState(ViewGroup.java:3237)
at android.view.View.restoreHierarchyState(View.java:15733)
at com.android.internal.policy.PhoneWindow.restoreHierarchyState(PhoneWindow.java:2106)
at android.app.Activity.onRestoreInstanceState(Activity.java:1048)
at org.briarproject.briar.android.conversation.ConversationActivity.onRestoreInstanceState(ConversationActivity.java:362)
at android.app.Activity.performRestoreInstanceState(Activity.java:1003)
at android.app.Instrumentation.callActivityOnRestoreInstanceState(Instrumentation.java:1175)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2657)
... 9 more
```Android 1.4https://code.briarproject.org/briar/briar/-/issues/2275AssertionError when adding pending contact2022-02-28T15:06:45ZakwizgranAssertionError when adding pending contact* Android version: 5.1.1
* Phone model: Samsung SM-J120H (j1x3gxx)
* Briar version: 1.4.4 (36670a8)
Last lines of log:
```
02-24 09:47:54.504 I/BaseActivity: Pausing AddContactActivity
02-24 09:47:54.545 I/BaseActivity: Creating Pending...* Android version: 5.1.1
* Phone model: Samsung SM-J120H (j1x3gxx)
* Briar version: 1.4.4 (36670a8)
Last lines of log:
```
02-24 09:47:54.504 I/BaseActivity: Pausing AddContactActivity
02-24 09:47:54.545 I/BaseActivity: Creating PendingContactListActivity
```
Stacktrace:
```
java.lang.AssertionError
at org.briarproject.bramble.api.nullsafety.NullSafety.requireNull(NullSafety.java:30)
at org.briarproject.bramble.rendezvous.RendezvousPollerImpl.addPendingContact(RendezvousPollerImpl.java:180)
at org.briarproject.bramble.rendezvous.RendezvousPollerImpl.lambda$addPendingContactAsync$3(RendezvousPollerImpl.java:306)
at org.briarproject.bramble.rendezvous.RendezvousPollerImpl.$r8$lambda$Mi_U1ZCfMDPQHtgr1vajgSuXz0Y(RendezvousPollerImpl.java)
at org.briarproject.bramble.rendezvous.RendezvousPollerImpl$$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:818)
```Android 1.4https://code.briarproject.org/briar/briar/-/issues/2274BadTokenException from emoji popup2024-03-18T18:00:04ZakwizgranBadTokenException from emoji popup* Android version: 5.1.1
* Phone model: Samsung SM-J200G (j2ltedd)
* Briar version: 1.4.4 (36670a8)
Stacktrace:
```
android.view.WindowManager$BadTokenException: Unable to add window -- token null is not valid; is your activity running?...* Android version: 5.1.1
* Phone model: Samsung SM-J200G (j2ltedd)
* Briar version: 1.4.4 (36670a8)
Stacktrace:
```
android.view.WindowManager$BadTokenException: Unable to add window -- token null is not valid; is your activity running?
at android.view.ViewRootImpl.setView(ViewRootImpl.java:772)
at android.view.WindowManagerGlobal.addView(WindowManagerGlobal.java:298)
at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:91)
at android.widget.PopupWindow.invokePopup(PopupWindow.java:1185)
at android.widget.PopupWindow.showAtLocation(PopupWindow.java:983)
at android.widget.PopupWindow.showAtLocation(PopupWindow.java:942)
at com.vanniktech.emoji.EmojiPopup.showAtBottom(EmojiPopup.java:248)
at com.vanniktech.emoji.EmojiPopup.onReceiveResult(EmojiPopup.java:257)
at com.vanniktech.emoji.EmojiResultReceiver.onReceiveResult(EmojiResultReceiver.java:26)
at android.os.ResultReceiver$MyRunnable.run(ResultReceiver.java:50)
at android.os.Handler.handleCallback(Handler.java:739)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:145)
at android.app.ActivityThread.main(ActivityThread.java:6946)
at java.lang.reflect.Method.invoke(Native Method)
at java.lang.reflect.Method.invoke(Method.java:372)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1404)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1199)
```
Log:
```
02-18 04:08:30.169 I/BriarApplicationImpl: Created
02-18 04:08:30.658 I/BaseActivity: Creating CrashReportActivity
02-18 04:08:31.197 I/BaseActivity: Starting CrashReportActivity
02-18 04:08:31.198 I/BaseActivity: Resuming CrashReportActivity
02-18 04:08:31.240 I/BaseActivity: Pausing CrashReportActivity
02-18 04:08:31.246 I/BaseActivity: Stopping CrashReportActivity
02-18 04:08:31.251 I/BaseActivity: Destroying CrashReportActivity
02-18 04:08:31.305 I/BaseActivity: Creating CrashReportActivity
02-18 04:08:31.345 W/LogDecrypterImpl: java.io.FileNotFoundException: /data/data/org.briarproject.briar.android/files/dev-logcat: open failed: ENOENT (No such file or directory)
java.io.FileNotFoundException: /data/data/org.briarproject.briar.android/files/dev-logcat: open failed: ENOENT (No such file or directory)
at libcore.io.IoBridge.open(IoBridge.java:456)
at java.io.FileInputStream.<init>(FileInputStream.java:76)
at org.briarproject.briar.android.logging.LogDecrypterImpl.decryptLogs(LogDecrypterImpl.java:45)
at org.briarproject.briar.android.reporting.ReportViewModel.lambda$init$0(ReportViewModel.java:97)
at org.briarproject.briar.android.reporting.ReportViewModel.$r8$lambda$9TLFESir3FK2Ov67pYo4zJIxFgo(ReportViewModel.java)
at org.briarproject.briar.android.reporting.ReportViewModel$$ExternalSyntheticLambda1.run(Unknown Source)
at android.os.Handler.handleCallback(Handler.java:739)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:145)
at org.briarproject.briar.android.reporting.ReportViewModel$SingleShotAndroidExecutor.run(ReportViewModel.java:249)
Caused by: android.system.ErrnoException: open failed: ENOENT (No such file or directory)
at libcore.io.Posix.open(Native Method)
at libcore.io.BlockGuardOs.open(BlockGuardOs.java:186)
at libcore.io.IoBridge.open(IoBridge.java:442)
at java.io.FileInputStream.<init>(FileInputStream.java:76)
at org.briarproject.briar.android.logging.LogDecrypterImpl.decryptLogs(LogDecrypterImpl.java:45)
at org.briarproject.briar.android.reporting.ReportViewModel.lambda$init$0(ReportViewModel.java:97)
at org.briarproject.briar.android.reporting.ReportViewModel.$r8$lambda$9TLFESir3FK2Ov67pYo4zJIxFgo(ReportViewModel.java)
at org.briarproject.briar.android.reporting.ReportViewModel$$ExternalSyntheticLambda1.run(Unknown Source)
at android.os.Handler.handleCallback(Handler.java:739)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:145)
at org.briarproject.briar.android.reporting.ReportViewModel$SingleShotAndroidExecutor.run(ReportViewModel.java:249)
```Android 1.4https://code.briarproject.org/briar/briar/-/issues/2273SecurityException when reading from removable drive2022-04-20T14:53:56ZakwizgranSecurityException when reading from removable drive* Android version: 10
* Phone model: Redmi M2006C3LG (dandelion_global)
* Briar version: 1.4.4 (36670a8)
Stacktrace:
```
java.lang.SecurityException: org.briarproject.briar.android has no access to content://media/external/audio/media/4...* Android version: 10
* Phone model: Redmi M2006C3LG (dandelion_global)
* Briar version: 1.4.4 (36670a8)
Stacktrace:
```
java.lang.SecurityException: org.briarproject.briar.android has no access to content://media/external/audio/media/436
at android.os.Parcel.createException(Parcel.java:2074)
at android.os.Parcel.readException(Parcel.java:2042)
at android.database.DatabaseUtils.readExceptionFromParcel(DatabaseUtils.java:188)
at android.database.DatabaseUtils.readExceptionWithFileNotFoundExceptionFromParcel(DatabaseUtils.java:151)
at android.content.ContentProviderProxy.openTypedAssetFile(ContentProviderNative.java:705)
at android.content.ContentResolver.openTypedAssetFileDescriptor(ContentResolver.java:1700)
at android.content.ContentResolver.openAssetFileDescriptor(ContentResolver.java:1516)
at android.content.ContentResolver.openInputStream(ContentResolver.java:1200)
at org.briarproject.bramble.plugin.file.AndroidRemovableDrivePlugin.openInputStream(AndroidRemovableDrivePlugin.java:35)
at org.briarproject.bramble.plugin.file.AbstractRemovableDrivePlugin.createReader(AbstractRemovableDrivePlugin.java:110)
at org.briarproject.bramble.plugin.file.RemovableDriveReaderTask.run(RemovableDriveReaderTask.java:38)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
at java.lang.Thread.run(Thread.java:919)
```Android 1.4akwizgranakwizgranhttps://code.briarproject.org/briar/briar/-/issues/2272NPE at application startup2022-06-13T14:48:19ZakwizgranNPE at application startupThis bug was recorded by Google Play. The crash happens at injection time, possibly before our own crash reporter is initialised.
* Android version: 11
* Phone models: Motorola Moto G Power, Redmi Note 8 Pro, OnePlus Nord N10 5G, Xiaomi...This bug was recorded by Google Play. The crash happens at injection time, possibly before our own crash reporter is initialised.
* Android version: 11
* Phone models: Motorola Moto G Power, Redmi Note 8 Pro, OnePlus Nord N10 5G, Xiaomi Mi A3, OnePlus 7
* Briar versions: 1.4.3, 1.4.4 (Google Play)
Stacktrace:
```
java.lang.RuntimeException:
at android.app.ActivityThread.handleBindApplication (ActivityThread.java:7029)
at android.app.ActivityThread.access$1700 (ActivityThread.java:274)
at android.app.ActivityThread$H.handleMessage (ActivityThread.java:2098)
at android.os.Handler.dispatchMessage (Handler.java:106)
at android.os.Looper.loop (Looper.java:233)
at android.app.ActivityThread.main (ActivityThread.java:8063)
at java.lang.reflect.Method.invoke (Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run (RuntimeInit.java:631)
at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:978)
Caused by: java.lang.NullPointerException:
at java.net.NetworkInterface.getAll (NetworkInterface.java:498)
at java.net.NetworkInterface.getNetworkInterfaces (NetworkInterface.java:398)
at org.briarproject.bramble.system.AbstractSecureRandomProvider.writeToEntropyPool (AbstractSecureRandomProvider.java:28)
at org.briarproject.bramble.system.AndroidSecureRandomProvider.writeToEntropyPool (AndroidSecureRandomProvider.java:41)
at org.briarproject.bramble.system.UnixSecureRandomProvider.writeSeed (UnixSecureRandomProvider.java:49)
at org.briarproject.bramble.system.AndroidSecureRandomProvider.writeSeed (AndroidSecureRandomProvider.java:64)
at org.briarproject.bramble.system.UnixSecureRandomProvider.getProvider (UnixSecureRandomProvider.java:41)
at org.briarproject.bramble.crypto.CryptoComponentImpl.<init> (CryptoComponentImpl.java:83)
at org.briarproject.bramble.crypto.CryptoModule.provideCryptoComponent (CryptoModule.java:32)
at org.briarproject.bramble.crypto.CryptoModule_ProvideCryptoComponentFactory.provideCryptoComponent (CryptoModule_ProvideCryptoComponentFactory.java:42)
at org.briarproject.bramble.crypto.CryptoModule_ProvideCryptoComponentFactory.get (CryptoModule_ProvideCryptoComponentFactory.java:31)
at org.briarproject.bramble.crypto.CryptoModule_ProvideCryptoComponentFactory.get (CryptoModule_ProvideCryptoComponentFactory.java:10)
at dagger.internal.DoubleCheck.get (DoubleCheck.java:47)
at org.briarproject.bramble.sync.MessageFactoryImpl_Factory.get (MessageFactoryImpl_Factory.java:21)
at org.briarproject.bramble.sync.MessageFactoryImpl_Factory.get (MessageFactoryImpl_Factory.java:8)
at org.briarproject.bramble.sync.SyncModule_ProvideMessageFactoryFactory.get (SyncModule_ProvideMessageFactoryFactory.java:26)
at org.briarproject.bramble.sync.SyncModule_ProvideMessageFactoryFactory.get (SyncModule_ProvideMessageFactoryFactory.java:9)
at org.briarproject.bramble.db.DatabaseModule_ProvideDatabaseFactory.get (DatabaseModule_ProvideDatabaseFactory.java:36)
at org.briarproject.bramble.db.DatabaseModule_ProvideDatabaseFactory.get (DatabaseModule_ProvideDatabaseFactory.java:12)
at dagger.internal.DoubleCheck.get (DoubleCheck.java:47)
at org.briarproject.bramble.db.DatabaseModule_ProvideDatabaseComponentFactory.get (DatabaseModule_ProvideDatabaseComponentFactory.java:40)
at org.briarproject.bramble.db.DatabaseModule_ProvideDatabaseComponentFactory.get (DatabaseModule_ProvideDatabaseComponentFactory.java:13)
at dagger.internal.DoubleCheck.get (DoubleCheck.java:47)
at org.briarproject.bramble.lifecycle.LifecycleManagerImpl_Factory.get (LifecycleManagerImpl_Factory.java:30)
at org.briarproject.bramble.lifecycle.LifecycleManagerImpl_Factory.get (LifecycleManagerImpl_Factory.java:10)
at org.briarproject.bramble.lifecycle.LifecycleModule_ProvideLifecycleManagerFactory.get (LifecycleModule_ProvideLifecycleManagerFactory.java:26)
at org.briarproject.bramble.lifecycle.LifecycleModule_ProvideLifecycleManagerFactory.get (LifecycleModule_ProvideLifecycleManagerFactory.java:9)
at dagger.internal.DoubleCheck.get (DoubleCheck.java:47)
at org.briarproject.bramble.cleanup.CleanupModule_ProvideCleanupManagerFactory.get (CleanupModule_ProvideCleanupManagerFactory.java:35)
at org.briarproject.bramble.cleanup.CleanupModule_ProvideCleanupManagerFactory.get (CleanupModule_ProvideCleanupManagerFactory.java:11)
at dagger.internal.DoubleCheck.get (DoubleCheck.java:47)
at org.briarproject.briar.android.DaggerAndroidComponent.injectEagerSingletons (DaggerAndroidComponent.java:2556)
at org.briarproject.briar.android.DaggerAndroidComponent.inject (DaggerAndroidComponent.java:2066)
at org.briarproject.bramble.BrambleCoreEagerSingletons$Helper.injectEagerSingletons (BrambleCoreEagerSingletons.java:48)
at org.briarproject.briar.android.BriarApplicationImpl.createApplicationComponent (BriarApplicationImpl.java:97)
at org.briarproject.briar.android.BriarApplicationImpl.onCreate (BriarApplicationImpl.java:64)
at android.app.Instrumentation.callApplicationOnCreate (Instrumentation.java:1208)
at android.app.ActivityThread.handleBindApplication (ActivityThread.java:7024)
```
This looks like a framework bug that we could work around by catching the exception.Android 1.4akwizgranakwizgranhttps://code.briarproject.org/briar/briar/-/issues/2271IllegalStateException when setting password2022-04-17T11:49:19ZakwizgranIllegalStateException when setting password* Android version: 9
* Phone models: Huawei Y6 Pro 2019, Honor 8A, Huawei nova 3i
* Briar version: 1.4.4 (Google Play)
Stacktrace:
```
java.lang.IllegalStateException:
at org.briarproject.briar.android.account.SetupViewModel.setPassw...* Android version: 9
* Phone models: Huawei Y6 Pro 2019, Honor 8A, Huawei nova 3i
* Briar version: 1.4.4 (Google Play)
Stacktrace:
```
java.lang.IllegalStateException:
at org.briarproject.briar.android.account.SetupViewModel.setPassword (SetupViewModel.java:84)
at org.briarproject.briar.android.account.SetPasswordFragment.onClick (SetPasswordFragment.java:123)
at android.view.View.performClick (View.java:6659)
at android.view.View.performClickInternal (View.java:6631)
at android.view.View.access$3100 (View.java:790)
at android.view.View$PerformClick.run (View.java:26187)
at android.os.Handler.handleCallback (Handler.java:907)
at android.os.Handler.dispatchMessage (Handler.java:105)
at android.os.Looper.loop (Looper.java:216)
at android.app.ActivityThread.main (ActivityThread.java:7625)
at java.lang.reflect.Method.invoke (Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run (RuntimeInit.java:524)
at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:987)
```Android 1.4https://code.briarproject.org/briar/briar/-/issues/2270Crash during power management setup on Huawei device2022-04-13T10:20:05ZakwizgranCrash during power management setup on Huawei deviceA user reported that Briar crashes during power management setup on a Huawei device. It's not clear whether the crash happened when requesting doze exemption or when opening the battery settings screen (or perhaps even the protected apps...A user reported that Briar crashes during power management setup on a Huawei device. It's not clear whether the crash happened when requesting doze exemption or when opening the battery settings screen (or perhaps even the protected apps list, if it was an old phone).
https://quietplace.xyz/notes/8xa865dc3rAndroid 1.4akwizgranakwizgranhttps://code.briarproject.org/briar/briar/-/issues/2267Broadcast event when recording connection status of own mailbox2022-04-01T11:18:01ZakwizgranBroadcast event when recording connection status of own mailboxMailbox: Status UI for Briar appDaniel LublinDaniel Lublinhttps://code.briarproject.org/briar/briar-desktop/-/issues/320Increase threshold for including translations2023-02-01T13:45:04ZNicoIncrease threshold for including translationsWith !185 I realized that 50% might be not enough for us to include languages for future releases. Ukrainian is only around 50%, and while a lot of important strings are already translated, there's still a lot of stuff missing.
I sugges...With !185 I realized that 50% might be not enough for us to include languages for future releases. Ukrainian is only around 50%, and while a lot of important strings are already translated, there's still a lot of stuff missing.
I suggest aligning Desktop's policy [with Android's one](https://code.briarproject.org/briar/briar/-/blob/master/briar-android/.tx/config#L10) and set the threshold to 80% for future releases.
What to do with languages that are included but under 80% is open to discussion.Desktop 1.0.0https://code.briarproject.org/briar/briar-desktop/-/issues/315Use private Composable functions where possible2023-01-09T21:39:57ZMikolai GütschowUse private Composable functions where possibleThe following discussion from !165 should be addressed:
- [ ] @sebkur started a [discussion](https://code.briarproject.org/briar/briar-desktop/-/merge_requests/165#note_63088): (+2 comments)
> Hmm, I guess [having private Composab...The following discussion from !165 should be addressed:
- [ ] @sebkur started a [discussion](https://code.briarproject.org/briar/briar-desktop/-/merge_requests/165#note_63088): (+2 comments)
> Hmm, I guess [having private Composable functions has] been possible all the time, we just haven't made use of it the way one usually would. For example looking at `PrivateMessageScreen`, all methods except `PrivateMessageScreen()` could be private. I think that's pretty common in our codebase. I think we didn't stumble upon it as IntelliJ doesn't warn about @Composable functions that could be private like it does with regular methods that could be private.Desktop 1.0.0https://code.briarproject.org/briar/briar-desktop/-/issues/308Make use of dependencies in BuildData2023-07-12T15:16:29ZSebastianMake use of dependencies in BuildDataDisplay them on the about dialog or something elseDisplay them on the about dialog or something elseDesktop 0.6.0SebastianSebastianhttps://code.briarproject.org/briar/briar/-/issues/2261Include mailbox API version in local and remote mailbox properties2022-05-16T13:59:41ZakwizgranInclude mailbox API version in local and remote mailbox propertiesDepends on https://code.briarproject.org/briar/briar/-/issues/2298Depends on https://code.briarproject.org/briar/briar/-/issues/2298Mailbox: Sync mailbox propertiesDaniel LublinDaniel Lublin