briar issueshttps://code.briarproject.org/groups/briar/-/issues2023-03-11T14:33:38Zhttps://code.briarproject.org/briar/briar-desktop/-/issues/463Release 0.4.0-beta2023-03-11T14:33:38ZMikolai GütschowRelease 0.4.0-betasee #412 as reference
### Preparation
* [x] String freeze (disable auto-pull) and announcement on Transifex at least a week before the release
* [x] Update translations (!292)
- run `tx pull -a -f`, add new languages to `Unencrypt...see #412 as reference
### Preparation
* [x] String freeze (disable auto-pull) and announcement on Transifex at least a week before the release
* [x] Update translations (!292)
- run `tx pull -a -f`, add new languages to `UnencryptedSettings.kt` (see [java locale list](https://www.oracle.com/java/technologies/javase/jdk17-suported-locales.html)), create commit
- temporarily remove `minimum_perc = 50` from `.tx/config`
- run `tx pull -a -f && rm briar-desktop/src/main/resources/strings/* && git restore briar-desktop/src/main/resources/strings/*`
- re-add `minimum_perc = 50` to `.tx/config`, append changes to last commit
* [x] Extensive testing
* [x] Update [changelog](https://code.briarproject.org/briar/briar-desktop/-/wikis/Changelog)
* [x] Prepare blog post announcing new features: Windows and Forums :tada: (website!102)
### Version bump
* [x] Change version in build config and metainfo.xml (!296)
* [x] Tag in Git (use `git tag -a -s <version-name>-beta -m "Briar Desktop <version-name>-beta"`) (https://code.briarproject.org/briar/briar-desktop/-/tags/0.4.0-beta)
* [x] GitLab CI builds release files automatically (https://code.briarproject.org/briar/briar-desktop/-/pipelines/13401)
### Deployment
* [x] Copy release files to desktop.briarproject.org (using [`update-binaries.sh`](https://code.briarproject.org/briar/briar-desktop-servers/-/blob/main/root/update-binaries.sh) with updated version code)
* [x] Rewrite and check that permalink points to correct version (don't forget to test and reload web server)
* [x] Update version and checksums (calculated using [`verify_hashsums.sh`](https://code.briarproject.org/briar/briar-desktop-servers/-/blob/main/verify_hashsums.sh)) on website (https://code.briarproject.org/briar/website/-/merge_requests/105)
* [x] Publish website
### PR
* [x] Inform 3rd party maintainers about release
* [x] Publish blog post
* [x] Post on social media ([Mastodon](), [Twitter](https://twitter.com/BriarApp/status/1620461035659337731)), useful [character counter](https://charactercounter.com/twitter)
* [x] Update screenshot on website
### Backlog
* [x] Update description, milestone and due date of #337
* [x] Re-enable auto-pull on Transifex under Resources > Auto update resources > add [url](https://code.briarproject.org/briar/briar-desktop/-/raw/main/briar-desktop/src/main/resources/strings/BriarDesktop.properties)Desktop 0.4.0Mikolai GütschowMikolai Gütschow2023-01-31https://code.briarproject.org/briar/briar-spec/-/issues/19Provide test cases as part of specification2023-02-14T22:34:30ZNicoProvide test cases as part of specificationWhen implementing Briar from the specifications in this project, test cases could be useful that allow developers to confirm that their implementations do what they are supposed to do. Some examples:
* given some briar:// link, confirm t...When implementing Briar from the specifications in this project, test cases could be useful that allow developers to confirm that their implementations do what they are supposed to do. Some examples:
* given some briar:// link, confirm that the right byte array including key and version is decoded
* given some public key (as byte array), confirm that the right briar:// link is generated
* given two briar:// links (and one of their private keys), confirm that the correct Tor Hidden Service .onion addresses are derived as part of BRP
I vaguely remember that test cases like those exist for other protocols or specifications. However, I'm not sure if the specifications are the right place to provide them or if there should rather be some sort of "test suite" that allows to test implementations regardless of their programming language.
As part of this issue, I'll link to places where tests like this are done in either briar-java or briar-rust.
### briar-java
* [KeyAgreementTest](https://code.briarproject.org/briar/briar/-/blob/release-1.4.20/bramble-core/src/test/java/org/briarproject/bramble/crypto/KeyAgreementTest.java)
### briar-rust
### References
* [Test vector in Elliptic Curve RFC 7748](https://www.rfc-editor.org/rfc/rfc7748#section-6.1)https://code.briarproject.org/briar/briar-desktop/-/issues/462Reply TextField UI Proposal2023-01-16T19:34:03ZpaulReply TextField UI ProposalI wrote up a small UI change to the forum reply UI to make it (in my opinion) a bit cleaner:
Current:
![experimental-reply-ui-before](/uploads/cbd795875ae007495b86dcbec4cb1e6e/experimental-reply-ui-before.png)
Proposal:
![experimental-...I wrote up a small UI change to the forum reply UI to make it (in my opinion) a bit cleaner:
Current:
![experimental-reply-ui-before](/uploads/cbd795875ae007495b86dcbec4cb1e6e/experimental-reply-ui-before.png)
Proposal:
![experimental-reply-ui-after](/uploads/7ef4d40d81e829b50523d2792f29b62f/experimental-reply-ui-after.png)https://code.briarproject.org/briar/briar-desktop/-/issues/461Show pending contact state2023-10-01T19:21:20ZMikolai GütschowShow pending contact stateWe currently don't tell the user a pending contact addition has failed and need to be re-started. Briar Android also shows current state late "Connecting..." iirc.
Related to #279.We currently don't tell the user a pending contact addition has failed and need to be re-started. Briar Android also shows current state late "Connecting..." iirc.
Related to #279.Desktop 0.7.0https://code.briarproject.org/briar/briar-desktop/-/issues/460Investigate Compose best-practices for lists2023-08-02T19:52:34ZMikolai GütschowInvestigate Compose best-practices for listsShould we use or is it worth it using `mutableStateListOf` as currently done in, e.g., `ContactsViewModel`? How to combine two different such state lists as currently done in `ContactListViewModel`? Can we have a common way of expressing...Should we use or is it worth it using `mutableStateListOf` as currently done in, e.g., `ContactsViewModel`? How to combine two different such state lists as currently done in `ContactListViewModel`? Can we have a common way of expressing a "still loading" state?https://code.briarproject.org/briar/briar-desktop/-/issues/459Migrate to using compose built-in `Badge` for unread counters2023-01-13T22:17:18ZMikolai GütschowMigrate to using compose built-in `Badge` for unread counterssee https://developer.android.com/reference/kotlin/androidx/compose/material/package-summary#Badge(androidx.compose.ui.Modifier,androidx.compose.ui.graphics.Color,androidx.compose.ui.graphics.Color,kotlin.Function1)see https://developer.android.com/reference/kotlin/androidx/compose/material/package-summary#Badge(androidx.compose.ui.Modifier,androidx.compose.ui.graphics.Color,androidx.compose.ui.graphics.Color,kotlin.Function1)https://code.briarproject.org/briar/briar-desktop/-/issues/458Research on and decide for across-screen navigation libraries/pattern2023-08-25T13:33:35ZMikolai GütschowResearch on and decide for across-screen navigation libraries/patternE.g. needed for #453. Quoting @grote from there:
> I only know that there's hundreds of competing navigation libraries for compose, not sure we want add our own implementation to the mix. Many of those probably only work on Android.E.g. needed for #453. Quoting @grote from there:
> I only know that there's hundreds of competing navigation libraries for compose, not sure we want add our own implementation to the mix. Many of those probably only work on Android.Desktop 0.7.0https://code.briarproject.org/briar/briar-desktop/-/issues/457Remove open option for answered forum invitations2023-01-23T13:23:37ZMikolai GütschowRemove open option for answered forum invitationsAs a fix for #453 until we decide on some support for navigating from one screen to another.As a fix for #453 until we decide on some support for navigating from one screen to another.Desktop 0.4.0Mikolai GütschowMikolai Gütschowhttps://code.briarproject.org/briar/briar-desktop/-/issues/456Consistent naming "Briar" throughout app2023-02-05T22:26:35ZMikolai GütschowConsistent naming "Briar" throughout appThe following discussion from !274 should be addressed:
- [ ] @ialokim started a [discussion](https://code.briarproject.org/briar/briar-desktop/-/merge_requests/274#note_73755): (+3 comments)
> While trying out the installer gener...The following discussion from !274 should be addressed:
- [ ] @ialokim started a [discussion](https://code.briarproject.org/briar/briar-desktop/-/merge_requests/274#note_73755): (+3 comments)
> While trying out the installer generated by the CI, I noticed we use "Briar" as the application name during installation and also for the `.desktop` file for Linux, but the title of the main window is "Briar Desktop". Not sure if we should instead be consistent.
TL;DR: We probably want to use "Briar" everywhere instead of "Briar Desktop".Desktop 0.4.1SebastianSebastianhttps://code.briarproject.org/briar/briar-desktop/-/issues/455Upgrade Compose to 1.3.02023-02-17T17:19:03ZMikolai GütschowUpgrade Compose to 1.3.0see https://github.com/JetBrains/compose-jb/releases/tag/v1.3.0see https://github.com/JetBrains/compose-jb/releases/tag/v1.3.0Mikolai GütschowMikolai Gütschowhttps://code.briarproject.org/briar/briar-desktop/-/issues/454Consider building for Raspberry Pi (arm64)2023-04-15T18:55:29ZMikolai GütschowConsider building for Raspberry Pi (arm64)We got the following mail some time back. I guess this should be quite easy when using pinpit after !274 is merged, @sebkur?
---
Dear Briar team,
for some time I have been following the development of the Briar app. First it was th...We got the following mail some time back. I guess this should be quite easy when using pinpit after !274 is merged, @sebkur?
---
Dear Briar team,
for some time I have been following the development of the Briar app. First it was the Android app only, which I use on a regular basis for some time now. Recently I'm trying to include the Linux desktop into my Briar environment. My intention was to run the desktop version of the Briar app on a Raspberry Pi system.
But the app crashes right at the start during initialization. After some searching the net I think the issue may be minor and could (possibly, hopefully) be easily fixed. (If not, please excuse my ignorance, I'm not a programmer).
There are two links with hints to a possible resolve for the issue:
- https://github.com/JetBrains/compose-jb/issues/1170
- https://stackoverflow.com/questions/70150052/org-jetbrains-skiko-libraryloadexception-cannot-find-libskiko-macos-arm64-dylib
According to these links, somewhere in the sources a call like this may be present:
`implementation(compose.desktop.currentOs)`
It may help to replace it with:
`implementation(compose.desktop.linux_arm64)`
Or with some kind of dynamic reference to the OS it is run on.
As can be seen with `uname -a` (see below) the architecture seems to identify itself as `aarch64`, not as `arm64` as seen in the exception error text.
Here is what I get when I try to start the app:
----------------------------------------------------------------------
```
> java -jar Briar-Desktop.jar
22:32:18.679 [main] INFO org.briarproject.briar.desktop.Main - This is briar-desktop version 0.3.0-beta
22:32:18.690 [main] INFO org.briarproject.briar.desktop.Main - Build info:
22:32:18.692 [main] INFO org.briarproject.briar.desktop.Main - Git hash 0a8c574cdd0942bee6fe709e0987a56c0360d349
22:32:18.697 [main] INFO org.briarproject.briar.desktop.Main - Commit time 2022-09-30 13:50:28
22:32:18.700 [main] INFO org.briarproject.briar.desktop.Main - Tag 0.3.0-beta
Exception in thread "main" java.lang.ExceptionInInitializerError
at androidx.compose.ui.awt.ComposeLayer.<init>(ComposeLayer.desktop.kt:72)
at androidx.compose.ui.awt.ComposeWindowDelegate.<init>(ComposeWindowDelegate.desktop.kt:50)
at androidx.compose.ui.awt.ComposeWindow.<init>(ComposeWindow.desktop.kt:43)
at androidx.compose.ui.awt.ComposeWindow.<init>(ComposeWindow.desktop.kt:40)
at androidx.compose.ui.window.Window_desktopKt$Window$3.invoke(Window.desktop.kt:161)
at androidx.compose.ui.window.Window_desktopKt$Window$3.invoke(Window.desktop.kt:156)
at androidx.compose.ui.window.Window_desktopKt$Window$10$1.invoke(Window.desktop.kt:367)
at androidx.compose.ui.window.Window_desktopKt$Window$10$1.invoke(Window.desktop.kt:366)
at androidx.compose.ui.window.AwtWindow_desktopKt$AwtWindow$2.invoke(AwtWindow.desktop.kt:75)
at androidx.compose.ui.window.AwtWindow_desktopKt$AwtWindow$2.invoke(AwtWindow.desktop.kt:74)
at androidx.compose.runtime.DisposableEffectImpl.onRemembered(Effects.kt:81)
at androidx.compose.runtime.CompositionImpl$RememberEventDispatcher.dispatchRememberObservers(Composition.kt:801)
at androidx.compose.runtime.CompositionImpl.applyChanges(Composition.kt:647)
at androidx.compose.runtime.Recomposer.composeInitial$runtime(Recomposer.kt:763)
at androidx.compose.runtime.CompositionImpl.setContent(Composition.kt:433)
at androidx.compose.ui.window.Application_desktopKt$awaitApplication$2$1$2.invokeSuspend(Application.desktop.kt:220)
at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:106)
at java.desktop/java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:318)
at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:771)
at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:722)
at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:716)
at java.base/java.security.AccessController.doPrivileged(AccessController.java:399)
at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:86)
at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:741)
at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:203)
at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:124)
at java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:113)
at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:109)
at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
at java.desktop/java.awt.EventDispatchThread.run(EventDispatchThread.java:90)
Caused by: org.jetbrains.skiko.LibraryLoadException: Cannot find libskiko-linux-arm64.so.sha256, proper native dependency missing.
at org.jetbrains.skiko.Library.findAndLoad(Library.kt:105)
at org.jetbrains.skiko.Library.load(Library.kt:59)
at org.jetbrains.skiko.SkiaLayer.<clinit>(SkiaLayer.awt.kt:27)
```
----------------------------------------------------------------------
The java archive file used is the current beta version (101M):
`briar-desktop-linux-0.3.0-beta.jar`
The above mentioned jar file works fine on a AMD64 Linux system (Debian testing). No issue with the file, then. By the way, the same error occurred with the older version 0.2.1-beta as well.
The system the app was crashing on is a Raspberry Pi with current stable 64 bit PiOS. The hardware is a Raspberry Pi 4 with 4 GB of RAM and plenty of it is free.
Some other Java applications like MediathekView run without issues.
This leads me to the conclusion that the error is somewhere in the code.
I hope the information provided helps to get Briar running on a Raspberry Pi with a future release of the desktop app.
----------------------------------------------------------------------
```
> cat /etc/issue
Debian GNU/Linux 11 \n \l
```
----------------------------------------------------------------------
```
> uname -a
Linux myhost 5.15.61-v8+ #1579 SMP PREEMPT Fri Aug 26 11:16:44 BST 2022 aarch64 GNU/Linux
```
----------------------------------------------------------------------
```
> java --version
openjdk 17.0.4 2022-07-19
OpenJDK Runtime Environment (build 17.0.4+8-Debian-1deb11u1)
OpenJDK 64-Bit Server VM (build 17.0.4+8-Debian-1deb11u1, mixed mode, sharing)
```https://code.briarproject.org/briar/briar-desktop/-/issues/453Let user open forum from within request message (only) after accepting the in...2023-05-11T21:20:22ZMikolai GütschowLet user open forum from within request message (only) after accepting the invitationThis issue consists of two parts:
- Currently clicking on "Open" does not do anything (`ConversationRequestItem(onOpenRequestedShareable = {})` is the default)
- After declining an invitation, "Open" is also shown to the user which doesn...This issue consists of two parts:
- Currently clicking on "Open" does not do anything (`ConversationRequestItem(onOpenRequestedShareable = {})` is the default)
- After declining an invitation, "Open" is also shown to the user which doesn't make sense:
![image](/uploads/4c950cc496d574839b90d876ac1adf3a/image.png)https://code.briarproject.org/briar/briar-desktop/-/issues/452User needs to allow access because Windows Defender initially blocks connections2023-01-12T12:02:46ZSebastianUser needs to allow access because Windows Defender initially blocks connectionsThis is what it looks like when initially starting Briar Desktop on Windows 10:
![Firewall](/uploads/d9e56e866fb4fbd05fc45e512e9b99cc/Firewall.png)
This was initially brought up in [this thread](https://code.briarproject.org/briar/bria...This is what it looks like when initially starting Briar Desktop on Windows 10:
![Firewall](/uploads/d9e56e866fb4fbd05fc45e512e9b99cc/Firewall.png)
This was initially brought up in [this thread](https://code.briarproject.org/briar/briar-desktop/-/merge_requests/274#note_73767).
Suggestions include:
* @ialokim: Perhaps we should consider showing information to the user explaining that they should accept connections if they want Briar to work correctly. Or if we want to be even fancier, somehow check if the connections are blocked by the firewall and then show some kind of dialog to the user explaining how the block can be undone. Probably something for a new issue in any case.
* @akwizgran: BTW there's an API for adding firewall rules, which IIRC prevents the Windows Defender dialog from popping up.
https://learn.microsoft.com/en-gb/previous-versions/windows/desktop/ics/windows-firewall-advanced-security-start-pagehttps://code.briarproject.org/briar/briar-desktop/-/issues/450Add explainer information for release on how to install downloaded MSI from t...2023-08-25T13:33:35ZSebastianAdd explainer information for release on how to install downloaded MSI from the internetDesktop 0.7.0SebastianSebastianhttps://code.briarproject.org/briar/briar-desktop/-/issues/449Implement ability to test locally that produced .deb files are installable on...2023-01-29T22:35:52ZSebastianImplement ability to test locally that produced .deb files are installable on target OSesUsing vagrant probably.Using vagrant probably.Desktop 0.4.0SebastianSebastianhttps://code.briarproject.org/briar/briar-desktop/-/issues/448Problem to add contact among Windows and one Android test device2023-01-11T10:17:00ZSebastianProblem to add contact among Windows and one Android test deviceI have a combination of devices that doesn't seem to be able to be added to one another successfully. First reported here: https://code.briarproject.org/briar/briar-desktop/-/merge_requests/8#note_73316
One device is the Nokia 2.4 with ...I have a combination of devices that doesn't seem to be able to be added to one another successfully. First reported here: https://code.briarproject.org/briar/briar-desktop/-/merge_requests/8#note_73316
One device is the Nokia 2.4 with some debug version of Briar Android installed. The other device is a Windows machine running Briar Desktop. The issue has been reproduced with a second Windows machine and the same Android device. I have not reset the account on the Android device since or installed a different version in order to still have access to the problematic combination of devices. In both cases, a different Android device could add the Windows machine and vice versa.https://code.briarproject.org/briar/briar-desktop/-/issues/447Strange overlay at right side on Windows 102023-01-20T10:01:33ZSebastianStrange overlay at right side on Windows 10I was testing the installer on Windows 10 and while that worked fine, I noticed something odd when running Briar itself. For some reason there's a narrow white overlay on the right hand side of the app. It sits below the expiry banner bu...I was testing the installer on Windows 10 and while that worked fine, I noticed something odd when running Briar itself. For some reason there's a narrow white overlay on the right hand side of the app. It sits below the expiry banner but above all other content. Makes it impossible to see the send button, the overflow menu and part of the text.
![Screenshot__6_](/uploads/b04112325381a103d02d1beb96e587cb/Screenshot__6_.png)
![Screenshot__1_](/uploads/3e9e89583de0f12e9eae14051af31faa/Screenshot__1_.png)
![Screenshot__2_](/uploads/78ea18023a2bcd698bef9d470034e665/Screenshot__2_.png)
It does not happen on Windows 11.
Any idea what this could be? Could have something to do with our drawer?Desktop 0.4.0https://code.briarproject.org/briar/briar-desktop/-/issues/446Add preference for setting an Avatar image2023-01-07T18:43:04ZSebastianAdd preference for setting an Avatar imagehttps://code.briarproject.org/briar/briar-spec/-/issues/18Move BSP clients specs from wiki to this repo2023-02-20T15:10:17ZNicoMove BSP clients specs from wiki to this repoAs discussed with @akwizgran, instead of having them in the wiki they should live in this repo so that merge requests can be opened that can be reviewed.
https://code.briarproject.org/briar/briar/-/wikis/home#clientsAs discussed with @akwizgran, instead of having them in the wiki they should live in this repo so that merge requests can be opened that can be reviewed.
https://code.briarproject.org/briar/briar/-/wikis/home#clientsNicoNicohttps://code.briarproject.org/briar/briar/-/issues/2410Crash when adding a contact at a distance due to missing BLUETOOTH_CONNECT pe...2023-05-29T11:41:22ZKatelyn DickeyCrash when adding a contact at a distance due to missing BLUETOOTH_CONNECT permissionThis error is avoided by having the "Nearby devices" permission.
The "Add contact nearby" flow asks for this permission, but at a distance does not, while apparently still needing the permission.
1. Have the "Nearby devices" permission ...This error is avoided by having the "Nearby devices" permission.
The "Add contact nearby" flow asks for this permission, but at a distance does not, while apparently still needing the permission.
1. Have the "Nearby devices" permission disallowed
2. Add a contact at a distance
3. Exchange keys
4. After contact is added, wait a few seconds and the app will crash
```
Need android.permission.BLUETOOTH_CONNECT permission for android.content.AttributionSource@163e09fc: getAddress
java.lang.SecurityException: Need android.permission.BLUETOOTH_CONNECT permission for android.content.AttributionSource@163e09fc: getAddress
at android.os.Parcel.createExceptionOrNull(Parcel.java:3011)
at android.os.Parcel.createException(Parcel.java:2995)
at android.os.Parcel.readException(Parcel.java:2978)
at android.os.Parcel.readException(Parcel.java:2920)
at android.bluetooth.IBluetoothManager$Stub$Proxy.getAddress(IBluetoothManager.java:534)
at android.bluetooth.BluetoothAdapter.getAddress(BluetoothAdapter.java:1534)
at org.briarproject.bramble.util.AndroidUtils.getBluetoothAddressAndMethod(AndroidUtils.java:70)
at org.briarproject.bramble.util.AndroidUtils.getBluetoothAddress(AndroidUtils.java:63)
at org.briarproject.bramble.plugin.bluetooth.AndroidBluetoothPlugin.getBluetoothAddress(AndroidBluetoothPlugin.java:146)
at org.briarproject.bramble.plugin.bluetooth.AbstractBluetoothPlugin.updateProperties(AbstractBluetoothPlugin.java:239)
at org.briarproject.bramble.plugin.bluetooth.AbstractBluetoothPlugin.$r8$lambda$ZdCFKGKAr5elvl5L48zy5sncMIA(Unknown Source:0)
at org.briarproject.bramble.plugin.bluetooth.AbstractBluetoothPlugin$$ExternalSyntheticLambda2.run(Unknown Source:2)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1137)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:637)
at java.lang.Thread.run(Thread.java:1012)
Caused by: android.os.RemoteException: Remote stack trace:
at com.android.server.bluetooth.BluetoothManagerService.checkPermissionForDataDelivery(BluetoothManagerService.java:3239)
at com.android.server.bluetooth.BluetoothManagerService.checkConnectPermissionForDataDelivery(BluetoothManagerService.java:3257)
at com.android.server.bluetooth.BluetoothManagerService.getAddress(BluetoothManagerService.java:1908)
at android.bluetooth.IBluetoothManager$Stub.onTransact(IBluetoothManager.java:246)
at android.os.Binder.execTransactInternal(Binder.java:1280)
```