briar issueshttps://code.briarproject.org/briar/briar/-/issues2023-01-25T17:23:06Zhttps://code.briarproject.org/briar/briar/-/issues/2411Xiaomi device Android 11, API 30 - crash after 'no battery restrictions' sele...2023-01-25T17:23:06ZIvanaXiaomi device Android 11, API 30 - crash after 'no battery restrictions' selectedSteps to reproduce:
- install briar debug (build 0cea137)
- when prompted go to device settings and select 'no battery restirctions'
- Briar crashes(logfile attached)
When restarted after crash, the user is not prompted to go back to ...Steps to reproduce:
- install briar debug (build 0cea137)
- when prompted go to device settings and select 'no battery restirctions'
- Briar crashes(logfile attached)
When restarted after crash, the user is not prompted to go back to battery restriction settings, but the 'Open Security settings', 'Boost speed', then 'Manual'. But when th euser navigates back to the Briar screen (by tapping the back button on the bottom of the screen, Briar crashes (logfile 2)
[Xiaomi_Briar_crash_settings.txt](/uploads/33d9e54f54cb5ccc95d8ad76205b3e91/Xiaomi_Briar_crash_settings.txt)
[Xiaomi_crash_settings_2.txt](/uploads/591436e71141cdfbf35e82c296a11312/Xiaomi_crash_settings_2.txt)https://code.briarproject.org/briar/briar/-/issues/2401Testers were concerned that Briar showed Mailbox as connected when Mailbox wa...2023-08-28T16:03:27ZakwizgranTesters were concerned that Briar showed Mailbox as connected when Mailbox was offline> Participants were complaining that even when the Mailbox device was offline, on the Briar app it looked like the connection is still working well. There were no indications that the connection is not working. They were expecting to get...> Participants were complaining that even when the Mailbox device was offline, on the Briar app it looked like the connection is still working well. There were no indications that the connection is not working. They were expecting to get a notification on their Briar app device whenever there were any problems with the Mailbox connection.
>
> This was quite concerning to them, they expressed that in everyday use they would never think to manually check the connection and they would always assume that the Mailbox is working unless they get a notification on their Briar device telling them about the problems.
>
> The “Last connection…” indicator wasn’t enough to show them the connection problems. They didn’t know how often Briar automatically check the connection. For example, Mailbox device was disconnected 3 minutes ago but the screen on the Briar app didn’t indicate any problem it just showed the time of the “Last connection: 5 minutes ago”.
Some thoughts about how to address this:
* If the last connection was not very recent (say, more than a minute ago), show a neutral status instead of a successful status, to prompt the user to use the "check connection" button to update the status
* Show some text along the lines of "Briar will automatically check the connection to your Mailbox every hour and notify you if your Mailbox is not reachable", and maybe show when the next check is dueMailbox: Usability testinghttps://code.briarproject.org/briar/briar/-/issues/2399Tester didn't know whether message had been uploaded to Mailbox2023-08-28T16:03:30ZakwizgranTester didn't know whether message had been uploaded to Mailbox> The tester was confused with the process of sending a message while the other contact is offline. He was expecting to get feedback from Briar to know if the message has been saved to Mailbox. He opened the notifications drawer on the B...> The tester was confused with the process of sending a message while the other contact is offline. He was expecting to get feedback from Briar to know if the message has been saved to Mailbox. He opened the notifications drawer on the Briar phone but didn’t find anything, then he checked the Mailbox app but didn’t find feedback there either. While he was waiting, he noticed an hourglass icon near the message and didn’t know what that meant. He thought it indicated a disappearing message. After I asked a follow-up question on how he understands if a message is delivered, he let me know that one checkmark indicates that the message is delivered and two checkmarks that the message is opened.
>
> After the other contact came back online, he noticed that the message was delivered as he saw the checkmarks, but he was wondering if the message was sent directly from the app or if it was transferred by Mailbox and he didn’t find any way to understand this.
Related to #1208.Mailbox: Usability testinghttps://code.briarproject.org/briar/briar/-/issues/2398Testers didn't understand why Mailbox was still linked after failed unlinking2023-08-28T16:03:33ZakwizgranTesters didn't understand why Mailbox was still linked after failed unlinking![unlink-1](/uploads/291b980ba78f2254b8ec690bb77f1850/unlink-1.png) ![unlink-2](/uploads/1279bbd2726de7a3d2adbc3076af895c/unlink-2.png)
> This step was confusing in most cases. Participants ignored the textboxes and when they unlinked t...![unlink-1](/uploads/291b980ba78f2254b8ec690bb77f1850/unlink-1.png) ![unlink-2](/uploads/1279bbd2726de7a3d2adbc3076af895c/unlink-2.png)
> This step was confusing in most cases. Participants ignored the textboxes and when they unlinked the device, the Mailbox still showed that it was linked. In those cases, they thought that this must be happening because of bugs in the test app.Mailbox: Usability testinghttps://code.briarproject.org/briar/briar/-/issues/2396Testers couldn't find mailbox pairing screen2023-08-28T16:03:37ZakwizgranTesters couldn't find mailbox pairing screen> All participants successfully installed and created accounts. On the other hand, linking devices was one of the most difficult tasks for all
participants.
>
> The common pattern for all was to misinterpret the device-linking process a...> All participants successfully installed and created accounts. On the other hand, linking devices was one of the most difficult tasks for all
participants.
>
> The common pattern for all was to misinterpret the device-linking process as adding a new contact. The first instinct for four out of five participants was to click on the + icon and try to “add a contact nearby”, they chose that because the devices are near to each other.
>
> The second place they went to look for the feature was always the sidebar menu. First, they looked at the options there and the connection icons. They guessed that linking devices is a form of connection, so they would find it there. One of the participants assumed that the “Internet” icon represents the Mailbox connection.
>
> On the third attempt, they could all find the Mailbox option, listed under the Settings menu.Mailbox: Usability testinghttps://code.briarproject.org/briar/briar/-/issues/2381Image attachment button doesn't get enabled while conversation is open2022-10-31T12:35:50ZakwizgranImage attachment button doesn't get enabled while conversation is openWhen we receive a client versioning message informing us that a contact supports image attachments, the image attachment button in the conversation screen should be enabled. Currently this only happens after leaving and re-entering the c...When we receive a client versioning message informing us that a contact supports image attachments, the image attachment button in the conversation screen should be enabled. Currently this only happens after leaving and re-entering the conversation screen.https://code.briarproject.org/briar/briar/-/issues/2379Hotspot fails to start if hotspot was previously running when app was killed2022-10-28T10:29:52ZakwizgranHotspot fails to start if hotspot was previously running when app was killedIf the app is killed (eg by revoking permissions) while a hotspot is running, it's not possible to start another hotspot until the phone has been rebooted or the phone's wifi has been turned off and on again.
This is a platform bug, but...If the app is killed (eg by revoking permissions) while a hotspot is running, it's not possible to start another hotspot until the phone has been rebooted or the phone's wifi has been turned off and on again.
This is a platform bug, but we might be able to find a workaround. Some things we could try:
* Call removeGroup() and wait for the async response before calling createGroup()
* If the hotspot fails to start, ask the user to turn wifi off and on again, and perhaps open the settings panel that provides a toggle for this (like we do if wifi is turned off when we're preparing to start the hotspot)https://code.briarproject.org/briar/briar/-/issues/2375Android 12 - New installation of Briar under certain conditions - Start Hostp...2022-10-24T11:58:48ZIvanaAndroid 12 - New installation of Briar under certain conditions - Start Hostpot button disabledSteps to reproduce:
- Clean installation of Briar = OK
- "Stop optimising battery usage? " => Allow
- Create Account = OK
- Briar > Settings > Share this app offline (no contacts yet)
- Start Hotspot
- Dialog: Allow Briar Debug access t...Steps to reproduce:
- Clean installation of Briar = OK
- "Stop optimising battery usage? " => Allow
- Create Account = OK
- Briar > Settings > Share this app offline (no contacts yet)
- Start Hotspot
- Dialog: Allow Briar Debug access to devices location?
- I select "Approximate" and "Only this time"
- Start Hotspot screen (again)
- "Location Permission" Dialog "You have denied access to your precise location, but Briar needs this permission to create a wifi hotspot. Please consider granting access". I click OK
- App permissions screen opens = OK
- I tap Permissions, I see location is marked as "Ask every time" - which is OK, as that is what I selected earlier.
- I tap Location and I see the location setting details - the Use Precise Location setting is OFF. I switch it on.
- Then I use the app switcher to go bac to Briar and I see the Start Hotspot screen, but with the Start Hotspot button disabled. See video for details.
Do not keep activities = OFF.
branch tested: 25f99bd7decfb1494462e54c7f92d2a11e025df0
![device-2022-10-24-134926](/uploads/6fbd116207ce0058a516bb0811db1894/device-2022-10-24-134926.mp4)https://code.briarproject.org/briar/briar/-/issues/2374Android 12 - hotspot error when nearby devices = ON and location = OFF2022-10-20T13:14:50ZIvanaAndroid 12 - hotspot error when nearby devices = ON and location = OFFSteps to reproduce:
Android 12 device
- Briar build 25f99bd7decfb1494462e54c7f92d2a11e025df0 is running
- in device settings - set the location permission to Off and nearby devices to ON.
- go back to Briar app > settings > share this...Steps to reproduce:
Android 12 device
- Briar build 25f99bd7decfb1494462e54c7f92d2a11e025df0 is running
- in device settings - set the location permission to Off and nearby devices to ON.
- go back to Briar app > settings > share this app offline
- tap Start hotspot
- a dialog box comes up asking the user to select the precise or approximate location...
- select the approximate location
- Start the Hitspot again
- A message comes up asking the user to set the device location to on (or some such)
- User continues and on the following dialog box selects 'change to precise location'.
- The progress circle starts and the hotspot is opening... and then...
- the error message - see attached screens.
If at the start of this process both nearby devices and location are off, then hotspot starts OK
Interesting maybe - if I go back to Briar > settings and restart the process of sharing the app, the process does not restart, but imemdiately the error screen shows again. And If I log out of Briar all together, and log back in, the same thing happens.
![Screenshot_20221020_133441](/uploads/1b32fff4eb4149c9851d677f06b991e8/Screenshot_20221020_133441.png)
![Screenshot_20221020_133502](/uploads/a660d1ee89930a71a604193a628022b2/Screenshot_20221020_133502.png)
![Screenshot_20221020_133515](/uploads/61cbc6014500fd8af49f8ea663131605/Screenshot_20221020_133515.png)
![Screenshot_20221020_133529](/uploads/9862fd1068b92d40f249f0597eb5ae14/Screenshot_20221020_133529.png)
![Screenshot_20221020_133546](/uploads/fa2ee59a4f6415d3c1ee017acf6ae7e0/Screenshot_20221020_133546.png)https://code.briarproject.org/briar/briar/-/issues/2372Restarting the app after having killed it, shows the last screen displayed be...2022-10-19T12:44:00ZIvanaRestarting the app after having killed it, shows the last screen displayed before killing the app -which hangsSteps to reproduce
Android 12, Samsung device
- In Briar app go to contacts screen and tap create a new nearby contact
- go through the steps as required, and Allow briar to access 'nearby devices'
- when the camera is showing, leave t...Steps to reproduce
Android 12, Samsung device
- In Briar app go to contacts screen and tap create a new nearby contact
- go through the steps as required, and Allow briar to access 'nearby devices'
- when the camera is showing, leave the Briar app and go to device settings, and change the 'nearby devices' setting
- This will kill the Briar app -
- log in again
- The first screen that the user sees after the log in is the camera screen again, which hangs... see attached - it is from this screen that I left the Briar app and went to the device settings
-expectation: after the log in, the Briar main screen should be shown and not the camera screen.
the 'do not keep activities' = Off in this case.
This may not be specifically the Android 12 issue... Will try and reproduce with other phones and add comments
![device-2022-10-19-140006](/uploads/bdc3665c4517e133373a76753dd2b438/device-2022-10-19-140006.mp4)https://code.briarproject.org/briar/briar/-/issues/2371Adding remote contact on API 19 crashes the app.2022-10-18T16:52:29ZFlyingP1g FlyingP1gAdding remote contact on API 19 crashes the app.I was adding a remote contact with virtual device (Nexus 5x API 19), it crashed without even giving briar crash fragment. (Tested multiple times)
Adding a remote contact with virtual device (Pixel 4a API 31) works ok.
I was using master ...I was adding a remote contact with virtual device (Nexus 5x API 19), it crashed without even giving briar crash fragment. (Tested multiple times)
Adding a remote contact with virtual device (Pixel 4a API 31) works ok.
I was using master branch and the latest comit was this 718d95f3d5426f8bbb65b8c8664874bb4f6ac53d
Steps to reproduce:
1) Add contact at distance
2) adb shell input text 'briar link'
3) Go to the next screen
4) give nickname and press add contact (Note: sometimes briar doesn't crash instantly, but later, I was never able to add a contact.)
5) Briar should crash
Last lines in Logcat:
```
2022-10-16 14:25:12.140 2745-2745/org.briarproject.briar.android.debug W/dalvikvm: VFY: unable to resolve virtual method 2963: Landroid/widget/Button;.setAutoSizeTextTypeWithDefaults (I)V
2022-10-16 14:25:12.140 2745-2745/org.briarproject.briar.android.debug D/dalvikvm: VFY: replacing opcode 0x6f at 0x0004
2022-10-16 14:25:12.140 2745-2745/org.briarproject.briar.android.debug I/BaseActivity: Resuming StartupActivity
2022-10-16 14:25:12.180 2745-2745/org.briarproject.briar.android.debug D/: HostConnection::get() New Host Connection established 0xb8e34bc0, tid 2745
2022-10-16 14:25:12.180 2745-2745/org.briarproject.briar.android.debug D/EGL_emulation: eglCreateContext: 0xb8e33a00: maj 3 min 1 rcv 4
2022-10-16 14:25:12.220 2745-2745/org.briarproject.briar.android.debug D/EGL_emulation: eglMakeCurrent: 0xb8e33a00: ver 3 1
2022-10-16 14:25:12.220 2745-2745/org.briarproject.briar.android.debug E/eglCodecCommon: glUtilsParamSize: unknow param 0x000082da
2022-10-16 14:25:12.220 2745-2745/org.briarproject.briar.android.debug E/eglCodecCommon: glUtilsParamSize: unknow param 0x00008cdf
2022-10-16 14:25:12.220 2745-2745/org.briarproject.briar.android.debug E/eglCodecCommon: glUtilsParamSize: unknow param 0x00008824
2022-10-16 14:25:12.220 2745-2745/org.briarproject.briar.android.debug E/EGL_emulation: tid 2745: eglSurfaceAttrib(1199): error 0x3009 (EGL_BAD_MATCH)
2022-10-16 14:25:12.220 2745-2745/org.briarproject.briar.android.debug W/HardwareRenderer: Backbuffer cannot be preserved
2022-10-16 14:25:12.220 2745-2745/org.briarproject.briar.android.debug D/OpenGLRenderer: Enabling debug mode 0
2022-10-16 14:25:12.250 2745-2745/org.briarproject.briar.android.debug I/dalvikvm: Could not find method android.view.View.setTooltipText, referenced from method androidx.appcompat.widget.TooltipCompat.setTooltipText
2022-10-16 14:25:12.250 2745-2745/org.briarproject.briar.android.debug W/dalvikvm: VFY: unable to resolve virtual method 2302: Landroid/view/View;.setTooltipText (Ljava/lang/CharSequence;)V
2022-10-16 14:25:12.250 2745-2745/org.briarproject.briar.android.debug D/dalvikvm: VFY: replacing opcode 0x6e at 0x0006
2022-10-16 14:25:12.270 2745-2745/org.briarproject.briar.android.debug I/BaseActivity: Stopping NavDrawerActivity
```https://code.briarproject.org/briar/briar/-/issues/2362Timestamps in contact list (and maybe other lists) aren't updated2022-08-30T13:17:55ZakwizgranTimestamps in contact list (and maybe other lists) aren't updatedTimestamps in the contact list aren't updated if the screen timeout is set to less than 1 minute, as the refresher task is cancelled when the screen turns off.
Other BriarRecyclerViews may be affected if they don't reload their data or ...Timestamps in the contact list aren't updated if the screen timeout is set to less than 1 minute, as the refresher task is cancelled when the screen turns off.
Other BriarRecyclerViews may be affected if they don't reload their data or redraw their lists when started/resumed.https://code.briarproject.org/briar/briar/-/issues/2349SecurityException when setting clipboard contents2022-07-13T15:05:41ZakwizgranSecurityException when setting clipboard contents* Android version: 10
* Phone model: Realme RMX2020 (RMX2020RU)
* Briar version: 1.4.9 (592daf9)
Stacktrace:
```
java.lang.SecurityException: com.miHoYo.GenshinImpact from uid 10622 not allowed to perform READ_CLIPBOARD
at andro...* Android version: 10
* Phone model: Realme RMX2020 (RMX2020RU)
* Briar version: 1.4.9 (592daf9)
Stacktrace:
```
java.lang.SecurityException: com.miHoYo.GenshinImpact from uid 10622 not allowed to perform READ_CLIPBOARD
at android.os.Parcel.createException(Parcel.java:2087)
at android.os.Parcel.readException(Parcel.java:2055)
at android.os.Parcel.readException(Parcel.java:2003)
at android.content.IClipboard$Stub$Proxy.setPrimaryClip(IClipboard.java:293)
at android.content.ClipboardManager.setPrimaryClip(ClipboardManager.java:106)
at org.briarproject.briar.android.contact.add.remote.LinkExchangeFragment.lambda$onHandshakeLinkLoaded$1(LinkExchangeFragment.java:130)
at org.briarproject.briar.android.contact.add.remote.LinkExchangeFragment.$r8$lambda$7puQg0Zpj-kqg_hU0AyYfKEiXJI(Unknown Source:0)
at org.briarproject.briar.android.contact.add.remote.LinkExchangeFragment$$ExternalSyntheticLambda2.onClick(Unknown Source:4)
at android.view.View.performClick(View.java:7254)
at android.view.View.performClickInternal(View.java:7212)
at android.view.View.access$3800(View.java:828)
at android.view.View$PerformClick.run(View.java:27888)
at android.os.Handler.handleCallback(Handler.java:883)
at android.os.Handler.dispatchMessage(Handler.java:100)
at android.os.Looper.loop(Looper.java:227)
at android.app.ActivityThread.main(ActivityThread.java:7822)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:492)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1026)
Caused by: android.os.RemoteException: Remote stack trace:
at android.app.AppOpsManager.noteOp(AppOpsManager.java:5344)
at com.android.server.clipboard.ClipboardService.clipboardAccessAllowed(ClipboardService.java:759)
at com.android.server.clipboard.ClipboardService.setPrimaryClipInternal(ClipboardService.java:599)
at com.android.server.clipboard.ClipboardService.setPrimaryClipInternal(ClipboardService.java:530)
at com.android.server.clipboard.ClipboardService$ClipboardImpl.setPrimaryClip(ClipboardService.java:369)
```
Last lines of log:
```
07-10 20:03:40.221 W/BriarService: Trim memory: running critically low
07-10 20:03:40.222 I/BriarService: Clearing Glide cache
07-10 20:03:40.459 I/BaseActivity: Destroying NavDrawerActivity
07-10 20:03:45.769 I/BriarService: Trim memory: running low
07-10 20:03:45.769 I/BriarService: Clearing Glide cache
07-10 20:03:49.532 I/BaseActivity: Creating SplashScreenActivity
07-10 20:03:49.608 I/BaseActivity: Creating NavDrawerActivity
07-10 20:03:49.670 I/BaseActivity: Starting NavDrawerActivity
07-10 20:03:49.675 I/BaseActivity: Resuming NavDrawerActivity
07-10 20:03:49.840 I/BaseActivity: Destroying SplashScreenActivity
07-10 20:03:52.103 I/BaseActivity: Pausing NavDrawerActivity
07-10 20:03:52.128 I/BaseActivity: Creating AddContactActivity
07-10 20:03:52.183 I/BaseActivity: Starting AddContactActivity
07-10 20:03:52.184 I/BaseActivity: Resuming AddContactActivity
07-10 20:03:52.702 I/BaseActivity: Stopping NavDrawerActivity
```
I don't understand why Briar would receive a SecurityException when setting the primary clip, if a different app (Genshin Impact) doesn't have permission to read the clipboard. Still, perhaps we should catch this exception rather than crashing.https://code.briarproject.org/briar/briar/-/issues/2345NPE when unlocking app2022-06-29T10:44:12ZakwizgranNPE when unlocking app* Android version: 9
* Phone model: Huawei ANE-LX1
* Briar version: 1.4.8 (6e61827)
Stacktrace:
```
java.lang.RuntimeException: Failure delivering result ResultInfo{who=null, request=11, result=0, data=null} to activity {org.briarprojec...* Android version: 9
* Phone model: Huawei ANE-LX1
* Briar version: 1.4.8 (6e61827)
Stacktrace:
```
java.lang.RuntimeException: Failure delivering result ResultInfo{who=null, request=11, result=0, data=null} to activity {org.briarproject.briar.android/org.briarproject.briar.android.navdrawer.NavDrawerActivity}: java.lang.NullPointerException: Attempt to invoke virtual method 'int com.android.server.fingerprint.ClientMonitor.stop(boolean)' on a null object reference
at android.app.ActivityThread.deliverResults(ActivityThread.java:5078)
at android.app.ActivityThread.handleSendResult(ActivityThread.java:5120)
at android.app.servertransaction.ActivityResultItem.execute(ActivityResultItem.java:49)
at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:108)
at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:68)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2199)
at android.os.Handler.dispatchMessage(Handler.java:112)
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)
Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'int com.android.server.fingerprint.ClientMonitor.stop(boolean)' on a null object reference
at android.os.Parcel.createException(Parcel.java:1965)
at android.os.Parcel.readException(Parcel.java:1927)
at android.os.Parcel.readException(Parcel.java:1877)
at android.app.IActivityManager$Stub$Proxy.finishActivity(IActivityManager.java:3774)
at android.app.Activity.finish(Activity.java:5905)
at android.app.Activity.finish(Activity.java:5929)
at android.app.Activity.finishAfterTransition(Activity.java:5990)
at androidx.core.app.ActivityCompat.finishAfterTransition(ActivityCompat.java:305)
at androidx.fragment.app.FragmentActivity.supportFinishAfterTransition(FragmentActivity.java:178)
at org.briarproject.briar.android.activity.BriarActivity.onActivityResult(BriarActivity.java:91)
at org.briarproject.briar.android.navdrawer.NavDrawerActivity.onActivityResult(NavDrawerActivity.java:223)
at android.app.Activity.dispatchActivityResult(Activity.java:7797)
at android.app.ActivityThread.deliverResults(ActivityThread.java:5071)
... 11 more
```
Edited log:
```
06-20 12:03:16.624 I/BriarService: Trim memory: running moderately low
06-20 12:03:16.624 I/BriarService: Clearing Glide cache
06-20 12:03:17.244 I/AndroidNetworkManager: Received broadcast android.intent.action.SCREEN_ON
06-20 12:03:28.006 I/AndroidNetworkManager: Received broadcast android.intent.action.SCREEN_OFF
06-20 12:07:38.666 I/BaseActivity: Starting NavDrawerActivity
06-20 12:07:38.671 I/BaseActivity: Resuming NavDrawerActivity
06-20 12:07:38.672 I/BriarActivity: Locked, launching UnlockActivity
06-20 12:07:38.799 I/BaseActivity: Pausing NavDrawerActivity
06-20 12:07:38.840 I/BaseActivity: Creating UnlockActivity
06-20 12:07:38.872 I/BaseActivity: Starting UnlockActivity
06-20 12:07:38.874 I/BaseActivity: Resuming UnlockActivity
06-20 12:07:39.133 I/BaseActivity: Stopping NavDrawerActivity
06-20 12:07:39.655 I/AndroidNetworkManager: Received broadcast android.intent.action.SCREEN_ON
06-20 12:07:39.793 I/BaseActivity: Pausing UnlockActivity
```
The SCREEN_ON broadcast seems to have been received nearly a second after NavDrawerActivity was started and replaced by UnlockActivity. The broadcasts are sometimes delivered late so I'm not sure if that's relevant.
The device has `"android.hardware.fingerprint" : true`.https://code.briarproject.org/briar/briar/-/issues/2334IllegalArgumentException: Center point is not inside any of the rectangles2022-06-13T15:46:19ZakwizgranIllegalArgumentException: Center point is not inside any of the rectangles* Android version: 11
* Phone model: Realme RMX3085 (RMX3085RU)
* Briar version: 1.4.5 (4df523a)
Last lines of log:
```
03-06 17:10:56.730 I/BaseActivity: Pausing ConversationActivity
03-06 17:10:56.741 I/BaseActivity: Starting NavDrawe...* Android version: 11
* Phone model: Realme RMX3085 (RMX3085RU)
* Briar version: 1.4.5 (4df523a)
Last lines of log:
```
03-06 17:10:56.730 I/BaseActivity: Pausing ConversationActivity
03-06 17:10:56.741 I/BaseActivity: Starting NavDrawerActivity
03-06 17:10:56.741 I/BaseActivity: Resuming NavDrawerActivity
03-06 17:10:57.210 I/BaseActivity: Stopping ConversationActivity
03-06 17:10:57.213 I/BaseActivity: Destroying ConversationActivity
03-06 17:11:01.090 I/BaseActivity: Pausing NavDrawerActivity
03-06 17:11:01.100 I/BaseActivity: Creating ConversationActivity
03-06 17:11:01.108 I/ConversationViewModel: PrivateMessageFormat loaded: TEXT_IMAGES_AUTO_DELETE
03-06 17:11:01.121 I/BaseActivity: Starting ConversationActivity
03-06 17:11:01.123 I/BaseActivity: Resuming ConversationActivity
03-06 17:11:01.159 I/ConversationActivity: Eagerly loading text for latest message
03-06 17:11:01.577 I/BaseActivity: Stopping NavDrawerActivity
03-06 17:11:02.299 I/BaseActivity: Pausing ConversationActivity
03-06 17:11:02.309 I/BaseActivity: Starting NavDrawerActivity
03-06 17:11:02.309 I/BaseActivity: Resuming NavDrawerActivity
03-06 17:11:02.781 I/BaseActivity: Stopping ConversationActivity
03-06 17:11:02.783 I/BaseActivity: Destroying ConversationActivity
03-06 17:11:03.434 I/BaseActivity: Pausing NavDrawerActivity
03-06 17:11:03.447 I/BaseActivity: Creating ConversationActivity
03-06 17:11:03.452 I/ConversationViewModel: PrivateMessageFormat loaded: TEXT_IMAGES_AUTO_DELETE
03-06 17:11:03.468 I/BaseActivity: Starting ConversationActivity
03-06 17:11:03.469 I/BaseActivity: Resuming ConversationActivity
03-06 17:11:03.506 I/ConversationActivity: Eagerly loading text for latest message
03-06 17:11:03.923 I/BaseActivity: Stopping NavDrawerActivity
```
Stacktrace:
```
java.lang.IllegalArgumentException: Center point is not inside any of the rectangles!
at android.widget.SmartSelectSprite.startAnimation(SmartSelectSprite.java:391)
at android.widget.SelectionActionModeHelper.startSelectionActionModeWithSmartSelectAnimation(SelectionActionModeHelper.java:357)
at android.widget.SelectionActionModeHelper.lambda$l1f1_V5lw6noQxI_3u11qF753Iw(Unknown Source:0)
at android.widget.-$$Lambda$SelectionActionModeHelper$l1f1_V5lw6noQxI_3u11qF753Iw.accept(Unknown Source:4)
at android.widget.SelectionActionModeHelper$TextClassificationAsyncTask.onPostExecute(SelectionActionModeHelper.java:1039)
at android.widget.SelectionActionModeHelper$TextClassificationAsyncTask.onPostExecute(SelectionActionModeHelper.java:993)
at android.os.AsyncTask.finish(AsyncTask.java:771)
at android.os.AsyncTask.access$900(AsyncTask.java:199)
at android.os.AsyncTask$InternalHandler.handleMessage(AsyncTask.java:788)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loop(Looper.java:255)
at android.app.ActivityThread.main(ActivityThread.java:8232)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:632)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1049)
```
Possibly a platform bug that was triggered when selecting text?https://code.briarproject.org/briar/briar/-/issues/2333AssertionError in TextAttachmentController when previewing attachments2022-06-13T15:40:19ZakwizgranAssertionError in TextAttachmentController when previewing attachments* Android version: 9
* Phone model: Tecno KC2j (H6113)
* Briar version: 1.4.5 (4df523a)
Edited log:
```
03-23 21:53:07.213 I/BaseActivity: Starting ConversationActivity
03-23 21:53:07.214 I/BaseActivity: Resuming ConversationActivity
03...* Android version: 9
* Phone model: Tecno KC2j (H6113)
* Briar version: 1.4.5 (4df523a)
Edited log:
```
03-23 21:53:07.213 I/BaseActivity: Starting ConversationActivity
03-23 21:53:07.214 I/BaseActivity: Resuming ConversationActivity
03-23 21:53:17.378 I/BaseActivity: Pausing ConversationActivity
03-23 21:53:17.827 I/BaseActivity: Stopping ConversationActivity
03-23 21:53:18.516 I/BaseActivity: Starting ConversationActivity
03-23 21:53:18.518 I/BaseActivity: Resuming ConversationActivity
03-23 21:53:19.508 I/BaseActivity: Pausing ConversationActivity
03-23 21:53:19.557 I/ConversationActivity: Concurrent update, reloading
03-23 21:53:19.906 I/AutoDeleteManagerImpl: Sending message with auto-delete timer -1
03-23 21:53:20.007 I/BaseActivity: Stopping ConversationActivity
03-23 21:53:20.065 I/ContactsViewModel: Conversation message tracked, updating item
03-23 21:53:21.340 I/AutoDeleteManagerImpl: Sending message with auto-delete timer -1
03-23 21:53:21.467 I/ContactsViewModel: Conversation message tracked, updating item
03-23 21:53:21.533 I/BaseActivity: Starting ConversationActivity
03-23 21:53:21.550 I/BaseActivity: Resuming ConversationActivity
03-23 21:53:21.583 I/ImageCompressorImpl: Original image size: 640x1337
03-23 21:53:21.583 I/ImageCompressorImpl: Scaling attachment by factor of 2
03-23 21:53:21.657 I/ImageCompressorImpl: Compressed image to 28878 bytes, quality 60
03-23 21:53:41.496 I/AndroidTaskScheduler: Running 1 due tasks
03-23 21:53:41.496 I/AndroidTaskScheduler: Task is 2 ms overdue
03-23 21:53:42.337 I/AndroidTaskScheduler: Running 1 due tasks
03-23 21:53:42.337 I/AndroidTaskScheduler: Task is 1 ms overdue
03-23 21:53:54.255 I/ConversationActivity: Eagerly loading text for latest message
03-23 21:53:54.495 I/ConversationActivity: Concurrent update, reloading
```
Stacktrace:
```
java.lang.AssertionError
at org.briarproject.briar.android.view.TextAttachmentController.onNewAttachmentItemResults(TextAttachmentController.java:200)
at org.briarproject.briar.android.view.TextAttachmentController.access$000(TextAttachmentController.java:44)
at org.briarproject.briar.android.view.TextAttachmentController$1.onChanged(TextAttachmentController.java:187)
at org.briarproject.briar.android.view.TextAttachmentController$1.onChanged(TextAttachmentController.java:179)
at androidx.lifecycle.LiveData.considerNotify(LiveData.java:133)
at androidx.lifecycle.LiveData.dispatchingValue(LiveData.java:151)
at androidx.lifecycle.LiveData.setValue(LiveData.java:309)
at androidx.lifecycle.MutableLiveData.setValue(MutableLiveData.java:50)
at androidx.lifecycle.LiveData$1.run(LiveData.java:93)
at android.os.Handler.handleCallback(Handler.java:873)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:193)
at android.app.ActivityThread.main(ActivityThread.java:6758)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:497)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:912)
```
This looks similar to #2218 but it's a different assertion that's failing.Android 1.4https://code.briarproject.org/briar/briar/-/issues/2332NPE in AutofillManager2022-06-13T15:14:03ZakwizgranNPE in AutofillManager* Android version: 12
* Phone model: OnePlus LE2125 (OnePlus9Pro)
* Briar version: 1.4.5 (4df523a)
Log:
```
03-16 13:27:13.111 I/BriarApplicationImpl: Created
03-16 13:27:13.125 I/BaseActivity: Creating SplashScreenActivity
03-16 13:27:...* Android version: 12
* Phone model: OnePlus LE2125 (OnePlus9Pro)
* Briar version: 1.4.5 (4df523a)
Log:
```
03-16 13:27:13.111 I/BriarApplicationImpl: Created
03-16 13:27:13.125 I/BaseActivity: Creating SplashScreenActivity
03-16 13:27:13.137 I/BaseActivity: Starting SplashScreenActivity
03-16 13:27:13.137 I/BaseActivity: Resuming SplashScreenActivity
03-16 13:27:13.656 I/BaseActivity: Pausing SplashScreenActivity
03-16 13:27:13.666 I/BaseActivity: Creating NavDrawerActivity
03-16 13:27:13.682 I/BaseActivity: Starting NavDrawerActivity
03-16 13:27:13.683 I/BaseActivity: Resuming NavDrawerActivity
03-16 13:27:13.683 I/BriarActivity: Not signed in, launching StartupActivity
03-16 13:27:13.690 I/BaseActivity: Pausing NavDrawerActivity
03-16 13:27:13.697 I/BaseActivity: Creating StartupActivity
03-16 13:27:13.701 I/AccountManagerImpl: Found database key in primary file
03-16 13:27:13.701 I/BaseActivity: Starting StartupActivity
03-16 13:27:13.709 I/BaseActivity: Resuming StartupActivity
03-16 13:27:13.739 I/BaseActivity: Stopping NavDrawerActivity
03-16 13:27:14.167 I/BaseActivity: Stopping SplashScreenActivity
03-16 13:27:14.167 I/BaseActivity: Destroying SplashScreenActivity
03-16 13:27:16.222 I/BaseActivity: Pausing StartupActivity
03-16 13:27:17.069 I/BaseActivity: Stopping StartupActivity
```
Stacktrace:
```
Failure delivering result ResultInfo{who=@android:autoFillAuth:, request=1048576, result=-1, data=Intent { }} to activity {org.briarproject.briar.android/org.briarproject.briar.android.login.StartupActivity}: java.lang.NullPointerException: Attempt to invoke virtual method 'boolean android.os.Bundle.containsKey(java.lang.String)' on a null object reference
java.lang.RuntimeException: Failure delivering result ResultInfo{who=@android:autoFillAuth:, request=1048576, result=-1, data=Intent { }} to activity {org.briarproject.briar.android/org.briarproject.briar.android.login.StartupActivity}: java.lang.NullPointerException: Attempt to invoke virtual method 'boolean android.os.Bundle.containsKey(java.lang.String)' on a null object reference
at android.app.ActivityThread.deliverResults(ActivityThread.java:5510)
at android.app.ActivityThread.handleSendResult(ActivityThread.java:5549)
at android.app.servertransaction.ActivityResultItem.execute(ActivityResultItem.java:54)
at android.app.servertransaction.ActivityTransactionItem.execute(ActivityTransactionItem.java:45)
at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:135)
at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2341)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loopOnce(Looper.java:233)
at android.os.Looper.loop(Looper.java:344)
at android.app.ActivityThread.main(ActivityThread.java:8184)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:584)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1034)
Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'boolean android.os.Bundle.containsKey(java.lang.String)' on a null object reference
at android.view.autofill.AutofillManager.onAuthenticationResult(AutofillManager.java:1798)
at android.app.Activity.dispatchActivityResult(Activity.java:8494)
at android.app.ActivityThread.deliverResults(ActivityThread.java:5503)
```https://code.briarproject.org/briar/briar/-/issues/2331KeyStoreException: Invalid key blob2024-03-19T16:03:18ZakwizgranKeyStoreException: Invalid key blob* Android version: 11
* Phone model: Samsung SM-G970F (beyond0ltexx)
* Briar version: 1.4.5 (4df523a)
* User feedback: "I tried to login, entered my password and then Briar just crashed. I used this account before. But then I restored my...* Android version: 11
* Phone model: Samsung SM-G970F (beyond0ltexx)
* Briar version: 1.4.5 (4df523a)
* User feedback: "I tried to login, entered my password and then Briar just crashed. I used this account before. But then I restored my phone from the backup I made a month ago."
Log:
```
03-07 19:47:35.275 I/BriarApplicationImpl: Created
03-07 19:47:35.321 I/AccountManagerImpl: Found database key in primary file
03-07 19:47:39.685 I/BaseActivity: Creating SplashScreenActivity
03-07 19:47:39.700 I/BaseActivity: Starting SplashScreenActivity
03-07 19:47:39.702 I/BaseActivity: Resuming SplashScreenActivity
03-07 19:47:40.210 I/BaseActivity: Pausing SplashScreenActivity
03-07 19:47:40.222 I/BaseActivity: Creating NavDrawerActivity
03-07 19:47:40.266 I/BaseActivity: Starting NavDrawerActivity
03-07 19:47:40.270 I/BaseActivity: Resuming NavDrawerActivity
03-07 19:47:40.270 I/BriarActivity: Not signed in, launching StartupActivity
03-07 19:47:40.277 I/BaseActivity: Pausing NavDrawerActivity
03-07 19:47:40.282 I/BaseActivity: Creating StartupActivity
03-07 19:47:40.288 I/AccountManagerImpl: Found database key in primary file
03-07 19:47:40.289 I/BaseActivity: Starting StartupActivity
03-07 19:47:40.303 I/BaseActivity: Resuming StartupActivity
03-07 19:47:40.394 I/BaseActivity: Stopping NavDrawerActivity
03-07 19:47:40.803 I/BaseActivity: Stopping SplashScreenActivity
03-07 19:47:40.804 I/BaseActivity: Destroying SplashScreenActivity
03-07 19:47:47.649 I/AccountManagerImpl: Found database key in primary file
03-07 19:47:48.424 I/AndroidKeyStrengthener: Loaded key from keystore
```
Stacktrace:
```
java.lang.RuntimeException: java.security.InvalidKeyException: Keystore operation failed
at org.briarproject.briar.android.AndroidKeyStrengthener.strengthenKey(AndroidKeyStrengthener.java:101)
at org.briarproject.bramble.crypto.CryptoComponentImpl.decryptWithPassword(CryptoComponentImpl.java:412)
at org.briarproject.bramble.account.AccountManagerImpl.loadAndDecryptDatabaseKey(AccountManagerImpl.java:214)
at org.briarproject.bramble.account.AccountManagerImpl.signIn(AccountManagerImpl.java:200)
at org.briarproject.briar.android.login.StartupViewModel.lambda$validatePassword$0(StartupViewModel.java:112)
at org.briarproject.briar.android.login.StartupViewModel.$r8$lambda$5aurY1rQupylNVXCUST5DjfL1L4(Unknown Source:0)
at org.briarproject.briar.android.login.StartupViewModel$$ExternalSyntheticLambda0.run(Unknown Source:4)
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:923)
Caused by: java.security.InvalidKeyException: Keystore operation failed
at android.security.KeyStore.getInvalidKeyException(KeyStore.java:1383)
at android.security.KeyStore.getInvalidKeyException(KeyStore.java:1393)
at android.security.keystore.KeyStoreCryptoOperationUtils.getInvalidKeyExceptionForInit(KeyStoreCryptoOperationUtils.java:54)
at android.security.keystore.AndroidKeyStoreHmacSpi.ensureKeystoreOperationInitialized(AndroidKeyStoreHmacSpi.java:184)
at android.security.keystore.AndroidKeyStoreHmacSpi.engineInit(AndroidKeyStoreHmacSpi.java:101)
at javax.crypto.Mac.chooseProvider(Mac.java:443)
at javax.crypto.Mac.init(Mac.java:513)
at org.briarproject.briar.android.AndroidKeyStrengthener.strengthenKey(AndroidKeyStrengthener.java:98)
... 9 more
Caused by: android.security.KeyStoreException: Invalid key blob
at android.security.KeyStore.getKeyStoreException(KeyStore.java:1306)
... 16 more
```Android 1.4https://code.briarproject.org/briar/briar/-/issues/2328Crash when dragging and dropping in BlogActivity2022-06-09T16:11:35ZakwizgranCrash when dragging and dropping in BlogActivity* Android version: 10
* Phone model: DOOGEE S88Pro (S88Pro_EEA)
* Briar version: 1.4.5 (4df523a)
Last lines of log:
```
03-25 18:02:55.609 I/BaseActivity: Pausing NavDrawerActivity
03-25 18:02:55.623 I/BaseActivity: Creating BlogActivit...* Android version: 10
* Phone model: DOOGEE S88Pro (S88Pro_EEA)
* Briar version: 1.4.5 (4df523a)
Last lines of log:
```
03-25 18:02:55.609 I/BaseActivity: Pausing NavDrawerActivity
03-25 18:02:55.623 I/BaseActivity: Creating BlogActivity
03-25 18:02:55.640 I/BlogPostFragment: Adding Handler Callback
03-25 18:02:55.641 I/BaseActivity: Starting BlogActivity
03-25 18:02:55.641 I/BaseActivity: Resuming BlogActivity
03-25 18:02:56.113 I/BaseActivity: Stopping NavDrawerActivity
```
Stacktrace:
```
java.lang.IllegalStateException: Drag shadow dimensions must be positive
at android.view.View.startDragAndDrop(View.java:25599)
at android.widget.Editor.startDragAndDrop(Editor.java:1183)
at android.widget.Editor.performLongClick(Editor.java:1209)
at android.widget.TextView.performLongClick(TextView.java:12217)
at android.view.View.performLongClick(View.java:7211)
at android.view.View$CheckForLongPress.run(View.java:27500)
at android.os.Handler.handleCallback(Handler.java:883)
at android.os.Handler.dispatchMessage(Handler.java:100)
at android.os.Looper.loop(Looper.java:214)
at android.app.ActivityThread.main(ActivityThread.java:7386)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:492)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:980)
```
Looks like a platform bug so I'm not adding it to the current milestone.https://code.briarproject.org/briar/briar/-/issues/2327NPE when choosing notification sound2022-06-09T16:07:36ZakwizgranNPE when choosing notification sound* Android version: not provided
* Phone model: not provided
* Briar version: 1.4.5 (4df523a)
Stacktrace:
```
java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.Class java.lang.Object.getClass()' on a null object...* Android version: not provided
* Phone model: not provided
* Briar version: 1.4.5 (4df523a)
Stacktrace:
```
java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.Class java.lang.Object.getClass()' on a null object reference
at org.briarproject.briar.android.settings.NotificationsFragment.onNotificationSoundClicked(NotificationsFragment.java:218)
at org.briarproject.briar.android.settings.NotificationsFragment.lambda$onCreatePreferences$0(NotificationsFragment.java:108)
at org.briarproject.briar.android.settings.NotificationsFragment.$r8$lambda$tuVFVxovM6wElFyU0NWBFxLNE14(NotificationsFragment.java)
at org.briarproject.briar.android.settings.NotificationsFragment$$ExternalSyntheticLambda6.onPreferenceClick(Unknown Source)
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:5265)
at android.view.View$PerformClick.run(View.java:21534)
at android.os.Handler.handleCallback(Handler.java:815)
at android.os.Handler.dispatchMessage(Handler.java:104)
at android.os.Looper.loop(Looper.java:207)
at android.app.ActivityThread.main(ActivityThread.java:5765)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:789)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:679)
```
Looks like the UI assumes the value of the `notifySound` LiveData will have been set, but it's not set until the settings have been loaded.
I thought we used to disable the UI until the settings were loaded, to avoid bugs like this. Maybe that was lost when we restructured the settings UI?Android 1.4