briar issueshttps://code.briarproject.org/groups/briar/-/issues2022-07-26T15:34:47Zhttps://code.briarproject.org/briar/briar/-/issues/927The "Change password" option accepts the old password as new2022-07-26T15:34:47ZJulian DehmThe "Change password" option accepts the old password as newIt's possible to "change" the password to the one you currently use.
We should check if the new one differs from the old before activating the change password buttonIt's possible to "change" the password to the one you currently use.
We should check if the new one differs from the old before activating the change password buttonhttps://code.briarproject.org/briar/briar/-/issues/1685New concept of forums and blogs (Groups, Supergroup and Channels)2022-07-26T00:11:57ZjomocuNew concept of forums and blogs (Groups, Supergroup and Channels)**General idea: The administrators of the group would have some general adjustments for the group, according to the group configuration a category is assigned.**
Generic settings for group administrators:
- Give the possibility that th...**General idea: The administrators of the group would have some general adjustments for the group, according to the group configuration a category is assigned.**
Generic settings for group administrators:
- Give the possibility that the users of the group, add new users, or not.
- Allow users to send messages or not.
- Allow users to send images or not.
- Allow users to send files or not.
- Allow users to send music or not.
- Allow users to send audios or not.
- Allow users to send gif or not.
- Other settings...
Depending on the general settings of the group, categories could be assigned, the categories change according to the group's permissions.
**Category "Channels"**
*Category feature:*
- Group members can only receive messages.
- All users can create a new "Channel" by default group permissions shown above.
For example, in a group that is not allowed to speak to its members and only administrators can speak, this category would be assigned since information is only received from administrators (for example, offers, or news about games, news, etc.)
In this case it would be good to give the possibility of self-publishing rss news for administrators.
**Category "Group"**
*Category feature:*
- Group members can send and receive messages.
- Group members cannot add new users (Only administrators can do so)
- All users can create a new "Group" by default group permissions shown above.
**Category "Supergroup"**
*Category feature:*
- Group members can send and receive messages.
- Group members can add new users.
- All users can create a new "Supergroup" by default group permissions shown above.
I think that would be better.
More organized, cleaner.
Regardshttps://code.briarproject.org/briar/briar/-/issues/2350Set a more visible link to version Changes2022-07-22T21:53:33ZJohn MaverickSet a more visible link to version ChangesEvery time I try to see what's new with the latest release I have to play fish.
It's terribly difficult to find the changes made in the last version.
Please place a link from the landing page - maybe in the new version announcement tex...Every time I try to see what's new with the latest release I have to play fish.
It's terribly difficult to find the changes made in the last version.
Please place a link from the landing page - maybe in the new version announcement text - to the changes.
In short, place a link on the main page to:
https://code.briarproject.org/briar/briar/-/wikis/changeloghttps://code.briarproject.org/briar/briar/-/issues/1817Research communication via public mesh2022-07-20T10:38:58ZakwizgranResearch communication via public meshDevelop and evaluate one or more concepts for communicating over a "public mesh" (as opposed to Briar's "social mesh", where users only connect to their contacts). A delay-tolerant, publish-subscribe architecture with end-to-end encrypti...Develop and evaluate one or more concepts for communicating over a "public mesh" (as opposed to Briar's "social mesh", where users only connect to their contacts). A delay-tolerant, publish-subscribe architecture with end-to-end encryption is assumed.
Each concept must include solutions for:
* Discovering nearby peers
* Connecting to peers
* Deciding which data to sync with each peer
* Providing an API for user-facing components (e.g. messaging) to insert data into the mesh and be notified when relevant data is received
Concepts must be suitable for use on unrooted Android devices (taking into account current restrictions on device discovery). Ideally concepts should also be suitable for use on iOS and allow communication between Android and iOS.
Identify and evaluate any risks of passive information leaks or active attacks. Evaluate performance taking Briar's "social mesh" as a baseline.Public mesh research2023-04-30https://code.briarproject.org/briar/briar/-/issues/1995Test sharing an app when offline2022-07-20T10:38:40ZTorsten GroteTest sharing an app when offlineYou will need *two* Android phones to help with testing sharing an app in an offline scenario.
It starts by download this test app on the first phone: https://grobox.de/tmp/hotspot.apk
Then please respond to this ticket, copying and pa...You will need *two* Android phones to help with testing sharing an app in an offline scenario.
It starts by download this test app on the first phone: https://grobox.de/tmp/hotspot.apk
Then please respond to this ticket, copying and pasting the text below into your response, giving the phone models in the first line.
You can check boxes by replacing `[ ]` with `[x]` or sending your response and then go through the steps, checking boxes by clicking them.
If you don't have or want an account to respond here, you can also send your response to `contact@briarproject.org` via email.
Please also respond, if you fail to complete all the steps. We would especially like to hear from you!
If something didn't go as expected, please feel free to add extra info to the questionnaire.
This is an example, how going through these steps could look like on the first phone:
[<img src="/uploads/b78344755319ed1b0830ce528b8c9637/device-2021-04-13-141128.png" width="200">](/uploads/b78344755319ed1b0830ce528b8c9637/device-2021-04-13-141128.png)
[<img src="/uploads/cdf3ae921106e98ee9dabbec2dfb3ac8/device-2021-04-13-141146.png" width="200">](/uploads/cdf3ae921106e98ee9dabbec2dfb3ac8/device-2021-04-13-141146.png)
[<img src="/uploads/750cd78087a215ede1c8a295eb9eb8a2/device-2021-04-13-142703.png" width="200">](/uploads/750cd78087a215ede1c8a295eb9eb8a2/device-2021-04-13-142703.png)
[<img src="/uploads/2e720826106e1fbedad1dde85b1683cd/device-2021-04-13-142720.png" width="200">](/uploads/2e720826106e1fbedad1dde85b1683cd/device-2021-04-13-142720.png)
[<img src="/uploads/6ccedfa1a0f8475383e43eb202645258/device-2021-04-14-102618.png" width="200">](/uploads/6ccedfa1a0f8475383e43eb202645258/device-2021-04-14-102618.png)
```
1. My phone models are: **[ModelOfPhone1]** and **[ModelOfPhone2]** running **[AndroidVersion1]** and **[AndroidVersion2]**
1. Download and install app on the first phone only
1. Start app and allow location permission (if requested)
1. [ ] Below the `START HOTSPOT` button, it says that `5GHz Wi-Fi is supported`.
1. Press the `START HOTSPOT` button
1. [ ] A QR code for a Wi-Fi appears
1. [ ] The Wi-Fi's name starts with `DIRECT-`
1. [ ] Below the `START HOTSPOT` button, it says `Hotspot started` and there's this text behind: **[no text]**
1. With a second phone I was able to connect to this Wi-Fi by
1. [ ] Scanning the QR code with a reader app
1. [ ] Entering the Wi-Fi data manually in the phone's Wi-Fi settings
1. Once the second phone is connected, press the `PEER CONNECTED` button
1. [ ] The app shows `http://192.168.49.1:9999` at the bottom
1. Press the menu/overflow icon and select `Network interfaces`
1. [ ] A new page shows text that includes the line `p2p0: /192.168.49.1`
1. Press the back button to come back to the (second) QR code screen
1. I was able to visit the shown site with the second phone by
1. [ ] Scanning the QR code with a reader app
1. [ ] Entering the link manually in my browser app
1. [ ] I could not visit this site
1. [ ] I could download the app on the second phone
1. [ ] I could install and open the app on the second phone
1. [ ] The second phone stayed connected to the first phone's Wi-Fi and I did not need to reconnect
1. While still connected to the first phone's Wi-Fi, go to system settings on the second phone.
* Open Wi-Fi settings and select the first phone's Wi-Fi.
* Try to find the `Frequency` (e.g. `5 GHz`) the Wi-Fi is using and write it down here: **[frequency]**
1. [ ] Bonus step: I could repeat the process by switching phones and it works the same or different in what aspect?
```
You can see how this will look like below or when using the "Preview" tab in your response.
Subtask of #1992Install via Bluetooth or Wi-FiTorsten GroteTorsten Grote2021-07-31https://code.briarproject.org/briar/briar/-/issues/1661The feedback window is too small2022-07-20T10:38:40ZGhost UserThe feedback window is too smallThe feedback window is too small. If I type more details, I cannot see the beginning more.
Tested with Briar 1.2.4 versionThe feedback window is too small. If I type more details, I cannot see the beginning more.
Tested with Briar 1.2.4 versionhttps://code.briarproject.org/briar/briar/-/issues/1573LanTcpPlugin broadcasts a TransportDisabledEvent if it fails to bind key agre...2022-07-20T10:38:40ZakwizgranLanTcpPlugin broadcasts a TransportDisabledEvent if it fails to bind key agreement socket`TcpPlugin#tryToClose(ServerSocket)` broadcasts a TransportDisabledEvent, apparently as a convenience because the enabled/disabled state of the plugin is defined by whether a server socket is bound and the socket can be closed in several...`TcpPlugin#tryToClose(ServerSocket)` broadcasts a TransportDisabledEvent, apparently as a convenience because the enabled/disabled state of the plugin is defined by whether a server socket is bound and the socket can be closed in several places. But LanTcpPlugin calls this method if it fails to bind a server socket for key agreement, wrongly broadcasting an event.
TorPlugin copies TcpPlugin's tryToClose() method. We should probably clean that up too, as TorPlugin will soon have other server sockets for rendezvous connections and we don't want to broadcast an event when they're closed.
Related to #1572.https://code.briarproject.org/briar/briar/-/issues/971Detect and report Tor crashes2022-07-20T10:38:39ZakwizgranDetect and report Tor crasheshttps://code.briarproject.org/briar/briar/-/issues/1228Add about menu with app version, link to homepage, gitlab and translated by c...2022-07-20T10:38:12ZmicressorAdd about menu with app version, link to homepage, gitlab and translated by creditI miss the **about** menu where I can see
* which version is installed,
* notable changes,
* possibility to donate,
* links to the project/code
Is something like that planned?I miss the **about** menu where I can see
* which version is installed,
* notable changes,
* possibility to donate,
* links to the project/code
Is something like that planned?Android 1.4https://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-mailbox/-/issues/136Adapt Xiaomi power setup for MIUI 12.52022-07-14T17:46:03ZTorsten GroteAdapt Xiaomi power setup for MIUI 12.5backport: https://code.briarproject.org/briar/briar/-/merge_requests/1667backport: https://code.briarproject.org/briar/briar/-/merge_requests/1667Mailbox: Manage app lifecycleTorsten GroteTorsten Grotehttps://code.briarproject.org/briar/briar/-/issues/2329Translations for TrustIndicatorView trust levels2022-07-14T17:37:37Zjohndoe4221Translations for TrustIndicatorView trust levelsThe `TrustIndicatorView` can display 5 different trust levels:
- ANONYMOUS
- UNVERIFIED
- VERIFIED
- OURSELVES
- default
In order to implement features like #1052 and make the trust levels easier to understand we need descriptive trans...The `TrustIndicatorView` can display 5 different trust levels:
- ANONYMOUS
- UNVERIFIED
- VERIFIED
- OURSELVES
- default
In order to implement features like #1052 and make the trust levels easier to understand we need descriptive translations of trust levels and what they mean for a contact.
I suggest to create the translation keys:
- `contact_trust_level_anonymous`
- `contact_trust_level_unverified`
- `contact_trust_level_verified`
- `contact_trust_level_ourselves`
- `contact_trust_level_default`
The this can be used to show the symbolic trust level and the descriptive text side by side, e.g:
![trust_level_translation](/uploads/f7c70c4002729ffc3fbe5537b654b742/trust_level_translation.png)Android 1.4https://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/1524DeadSystemException2022-07-13T14:58:33ZakwizgranDeadSystemException* Android version: 8.1.0
* Briar version: "N/A" (perhaps the package manager is unavailable?)
* Phone model: Motorola Moto G4 Plus (lineage_athene)
Stacktrace:
```
android.os.DeadSystemException
at android.os.PowerManager$WakeLo...* Android version: 8.1.0
* Briar version: "N/A" (perhaps the package manager is unavailable?)
* Phone model: Motorola Moto G4 Plus (lineage_athene)
Stacktrace:
```
android.os.DeadSystemException
at android.os.PowerManager$WakeLock.release(PowerManager.java:1463)
at android.os.PowerManager$WakeLock$1.run(PowerManager.java:1328)
at android.os.Handler.handleCallback(Handler.java:790)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:164)
at android.app.ActivityThread.main(ActivityThread.java:6494)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:440)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:807)
```
[Docs](https://developer.android.com/reference/android/os/DeadSystemException.html) for this exception:
> The core Android system has died and is going through a runtime restart. All running apps will be promptly killed.
[This thread](https://groups.google.com/forum/#!topic/android-platform/VVHA6-eRB3c) explains that a runtime restart is a form of soft reboot.
Doesn't look like there's anything we can do here. Creating this ticket for documentation only.https://code.briarproject.org/briar/briar/-/issues/1777IllegalStateException when BriarService is recreated after startup2022-07-13T14:35:00ZakwizgranIllegalStateException when BriarService is recreated after startup* Android version: 5.1.1
* Phone model: Samsung SM-J320M (j3xlteub)
* Briar version: 1.2.7 (eb562f8)
Stacktrace:
```
java.lang.IllegalStateException
at org.briarproject.bramble.network.AndroidNetworkManager.startService(AndroidN...* Android version: 5.1.1
* Phone model: Samsung SM-J320M (j3xlteub)
* Briar version: 1.2.7 (eb562f8)
Stacktrace:
```
java.lang.IllegalStateException
at org.briarproject.bramble.network.AndroidNetworkManager.startService(AndroidNetworkManager.java:71)
at org.briarproject.bramble.lifecycle.LifecycleManagerImpl.startServices(LifecycleManagerImpl.java:130)
at org.briarproject.briar.android.BriarService.lambda$onCreate$0$BriarService(BriarService.java:133)
at org.briarproject.briar.android.-$$Lambda$BriarService$Ihm6XxaER2EMRlAKzUA1GpEtxZU.run(lambda)
at java.lang.Thread.run(Thread.java:818)
```
Edited log:
```
06-04 12:25:55.414 I/TorPlugin: First circuit built
06-04 12:25:55.424 I/PollerImpl: Polling plugin org.briarproject.bramble.tor
06-04 12:25:55.428 I/TorPlugin: Connecting to sak[scrubbed]
06-04 12:26:25.431 I/TorPlugin: Could not connect to sak[scrubbed]: java.net.SocketTimeoutException
06-04 12:26:27.252 I/BaseActivity: Starting NavDrawerActivity
06-04 12:26:27.266 I/BriarService: Created
06-04 12:26:27.273 I/LifecycleManagerImpl: Opening database
06-04 12:26:27.299 I/H2Database: Reopening DB: true
06-04 12:26:27.306 I/JdbcDatabase: 2217908857 ms since last compaction
06-04 12:26:27.328 I/LifecycleManagerImpl: Starting services
```
The exception is a canary that's meant to warn us about singletons being reused in violation of their expected lifecycle.
The log shows that TorPlugin and PollerImpl were already running before BriarService was created. The database must have been open too, as the poller was able to load a contact's transport properties.
It looks like a new BriarService instance was created when one already existed, or used to exist. The BriarService instance also has a canary to check for reuse, so this must be a new instance.Android 1.4akwizgranakwizgranhttps://code.briarproject.org/briar/briar-mailbox/-/issues/109Crash when showing pairing success screen on Android 42022-07-13T11:43:04ZakwizgranCrash when showing pairing success screen on Android 4* Android version: 4.2.2
* Phone model: Huawei Ascend Y330
Stacktrace:
```
2022-04-27 13:49:32.281 6799-6799/org.briarproject.mailbox E/AndroidRuntime: FATAL EXCEPTION: main
android.view.InflateException: Binary XML file line #22: E...* Android version: 4.2.2
* Phone model: Huawei Ascend Y330
Stacktrace:
```
2022-04-27 13:49:32.281 6799-6799/org.briarproject.mailbox E/AndroidRuntime: FATAL EXCEPTION: main
android.view.InflateException: Binary XML file line #22: Error inflating class ImageView
at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:704)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:746)
at android.view.LayoutInflater.inflate(LayoutInflater.java:489)
at android.view.LayoutInflater.inflate(LayoutInflater.java:396)
at org.briarproject.mailbox.android.ui.SetupCompleteFragment.onCreateView(SetupCompleteFragment.kt:45)
at androidx.fragment.app.Fragment.performCreateView(Fragment.java:2995)
at androidx.fragment.app.FragmentStateManager.createView(FragmentStateManager.java:523)
at androidx.fragment.app.FragmentStateManager.moveToExpectedState(FragmentStateManager.java:261)
at androidx.fragment.app.FragmentManager.executeOpsTogether(FragmentManager.java:1840)
at androidx.fragment.app.FragmentManager.removeRedundantOperationsAndExecute(FragmentManager.java:1764)
at androidx.fragment.app.FragmentManager.execPendingActions(FragmentManager.java:1701)
at androidx.fragment.app.FragmentManager$4.run(FragmentManager.java:488)
at android.os.Handler.handleCallback(Handler.java:800)
at android.os.Handler.dispatchMessage(Handler.java:100)
at android.os.Looper.loop(Looper.java:194)
at android.app.ActivityThread.main(ActivityThread.java:5455)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:525)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:966)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:733)
at dalvik.system.NativeStart.main(Native Method)
Caused by: android.content.res.Resources$NotFoundException: File res/drawable/ic_success.xml from drawable resource ID #0x7f070081
at android.content.res.Resources.loadDrawable(Resources.java:2055)
at android.content.res.ResourcesEx.loadDrawable(ResourcesEx.java:580)
at android.content.res.TypedArray.getDrawable(TypedArray.java:609)
at android.widget.ImageView.<init>(ImageView.java:120)
at androidx.appcompat.widget.AppCompatImageView.<init>(AppCompatImageView.java:78)
at androidx.appcompat.widget.AppCompatImageView.<init>(AppCompatImageView.java:73)
at androidx.appcompat.app.AppCompatViewInflater.createImageView(AppCompatViewInflater.java:206)
at androidx.appcompat.app.AppCompatViewInflater.createView(AppCompatViewInflater.java:125)
at androidx.appcompat.app.AppCompatDelegateImpl.createView(AppCompatDelegateImpl.java:1566)
at androidx.appcompat.app.AppCompatDelegateImpl.onCreateView(AppCompatDelegateImpl.java:1617)
at android.view.LayoutInflater$FactoryMerger.onCreateView(LayoutInflater.java:171)
at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:675)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:746)
at android.view.LayoutInflater.inflate(LayoutInflater.java:489)
at android.view.LayoutInflater.inflate(LayoutInflater.java:396)
at org.briarproject.mailbox.android.ui.SetupCompleteFragment.onCreateView(SetupCompleteFragment.kt:45)
at androidx.fragment.app.Fragment.performCreateView(Fragment.java:2995)
at androidx.fragment.app.FragmentStateManager.createView(FragmentStateManager.java:523)
at androidx.fragment.app.FragmentStateManager.moveToExpectedState(FragmentStateManager.java:261)
at androidx.fragment.app.FragmentManager.executeOpsTogether(FragmentManager.java:1840)
at androidx.fragment.app.FragmentManager.removeRedundantOperationsAndExecute(FragmentManager.java:1764)
at androidx.fragment.app.FragmentManager.execPendingActions(FragmentManager.java:1701)
at androidx.fragment.app.FragmentManager$4.run(FragmentManager.java:488)
at android.os.Handler.handleCallback(Handler.java:800)
at android.os.Handler.dispatchMessage(Handler.java:100)
at android.os.Looper.loop(Looper.java:194)
at android.app.ActivityThread.main(ActivityThread.java:5455)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:525)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:966)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:733)
at dalvik.system.NativeStart.main(Native Method)
Caused by: org.xmlpull.v1.XmlPullParserException: Binary XML file line #5: invalid drawable tag vector
at android.graphics.drawable.Drawable.createFromXmlInner(Drawable.java:881)
at android.graphics.drawable.Drawable.createFromXml(Drawable.java:822)
at android.content.res.Resources.loadDrawable(Resources.java:2052)
at android.content.res.ResourcesEx.loadDrawable(ResourcesEx.java:580)
at android.content.res.TypedArray.getDrawable(TypedArray.java:609)
at android.widget.ImageView.<init>(ImageView.java:120)
at androidx.appcompat.widget.AppCompatImageView.<init>(AppCompatImageView.java:78)
at androidx.appcompat.widget.AppCompatImageView.<init>(AppCompatImageView.java:73)
at androidx.appcompat.app.AppCompatViewInflater.createImageView(AppCompatViewInflater.java:206)
at androidx.appcompat.app.AppCompatViewInflater.createView(AppCompatViewInflater.java:125)
at androidx.appcompat.app.AppCompatDelegateImpl.createView(AppCompatDelegateImpl.java:1566)
at androidx.appcompat.app.AppCompatDelegateImpl.onCreateView(AppCompatDelegateImpl.java:1617)
at android.view.LayoutInflater$FactoryMerger.onCreateView(LayoutInflater.java:171)
at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:675)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:746)
at android.view.LayoutInflater.inflate(LayoutInflater.java:489)
at android.view.LayoutInflater.inflate(LayoutInflater.java:396)
at org.briarproject.mailbox.android.ui.SetupCompleteFragment.onCreateView(SetupCompleteFragment.kt:45)
at androidx.fragment.app.Fragment.performCreateView(Fragment.java:2995)
at androidx.fragment.app.FragmentStateManager.createView(FragmentStateManager.java:523)
at androidx.fragment.app.FragmentStateManager.moveToExpectedState(FragmentStateManager.java:261)
at androidx.fragment.app.FragmentManager.executeOpsTogether(FragmentManager.java:1840)
at androidx.fragment.app.FragmentManager.removeRedundantOperationsAndExecute(FragmentManager.java:1764)
at androidx.fragment.app.FragmentManager.execPendingActions(FragmentManager.java:1701)
at androidx.fragment.app.FragmentManager$4.run(FragmentManager.java:488)
at android.os.Handler.handleCallback(Handler.java:800)
at android.os.Handler.dispatchMessage(Handler.java:100)
at android.os.Looper.loop(Looper.java:194)
at android.app.ActivityThread.main(ActivityThread.java:5455)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:525)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:966)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:733)
at dalvik.system.NativeStart.main(Native Method)
```Mailbox: PairingTorsten GroteTorsten Grotehttps://code.briarproject.org/briar/briar-mailbox/-/issues/101Get rid of remaining java.util.logging and replace with slf4j2022-07-13T11:42:26ZSebastianGet rid of remaining java.util.logging and replace with slf4jPoliteExecutor and AndroidLocationUtils still use java.util.logging while we decided to use slf4j in the mailbox.PoliteExecutor and AndroidLocationUtils still use java.util.logging while we decided to use slf4j in the mailbox.SebastianSebastianhttps://code.briarproject.org/briar/briar-mailbox/-/issues/106Tor complains about missing files when wiping via API2022-07-13T11:40:06ZTorsten GroteTor complains about missing files when wiping via API```
WARN o.b.mailbox.core.tor.TorPlugin - Error while sending tor shutdown instructions
net.freehaven.tor.control.TorControlError: Error reply: Unable to set option: Couldn't create private data directory "/home/user/.local/share/briar-...```
WARN o.b.mailbox.core.tor.TorPlugin - Error while sending tor shutdown instructions
net.freehaven.tor.control.TorControlError: Error reply: Unable to set option: Couldn't create private data directory "/home/user/.local/share/briar-mailbox/tor/.tor"
at net.freehaven.tor.control.TorControlConnection.sendAndWaitForResponse(TorControlConnection.java:204)
at net.freehaven.tor.control.TorControlConnection.setConf(TorControlConnection.java:394)
at net.freehaven.tor.control.TorControlConnection.setConf(TorControlConnection.java:348)
at org.briarproject.mailbox.core.tor.TorPlugin.stopService(TorPlugin.java:455)
at org.briarproject.mailbox.core.lifecycle.LifecycleManagerImpl$stopAllServices$1.invoke(LifecycleManagerImpl.kt:203)
at org.briarproject.mailbox.core.lifecycle.LifecycleManagerImpl$stopAllServices$1.invoke(LifecycleManagerImpl.kt:202)
at org.briarproject.mailbox.core.lifecycle.LifecycleManagerImpl.run(LifecycleManagerImpl.kt:263)
at org.briarproject.mailbox.core.lifecycle.LifecycleManagerImpl.stopAllServices(LifecycleManagerImpl.kt:202)
at org.briarproject.mailbox.core.lifecycle.LifecycleManagerImpl.stopServices(LifecycleManagerImpl.kt:173)
at org.briarproject.mailbox.core.lifecycle.LifecycleManagerImpl$wipeMailbox$2.invoke(LifecycleManagerImpl.kt:238)
at org.briarproject.mailbox.core.lifecycle.LifecycleManagerImpl$wipeMailbox$2.invoke(LifecycleManagerImpl.kt:237)
at kotlin.concurrent.ThreadsKt$thread$thread$1.run(Thread.kt:30)
```Mailbox: Manage app lifecycleSebastianSebastianhttps://code.briarproject.org/briar/briar-mailbox/-/issues/118Tapping notification creates duplicate instance of status screen2022-07-13T11:39:48ZakwizgranTapping notification creates duplicate instance of status screenSteps to reproduce:
* Start the Mailbox app and pair it with Briar
* While the status screen is in the foreground, pull down the notification drawer and tap the Mailbox app's ongoing notification
* Close the notification drawer
* Tap the...Steps to reproduce:
* Start the Mailbox app and pair it with Briar
* While the status screen is in the foreground, pull down the notification drawer and tap the Mailbox app's ongoing notification
* Close the notification drawer
* Tap the Stop button in the status screen
* Expected: The app closes
* Actual:
* The status screen closes, revealing another status screen underneath
* The stop button in the second status screen does nothingMailbox: Status UI for Mailbox appSebastianSebastianhttps://code.briarproject.org/briar/briar-mailbox/-/issues/112Success indicator is a blank green circle on Android 52022-07-13T11:38:19ZakwizgranSuccess indicator is a blank green circle on Android 5* Android version: 5.1
* Phone model: Motorola Moto G 4G
After pairing with Briar, the success indicator is a blank green circle instead of a checkmark. Possibly related to #109?
![Screenshot_20220427_165041](/uploads/212ff92ee9d0ad7c7...* Android version: 5.1
* Phone model: Motorola Moto G 4G
After pairing with Briar, the success indicator is a blank green circle instead of a checkmark. Possibly related to #109?
![Screenshot_20220427_165041](/uploads/212ff92ee9d0ad7c76095ae624c96c6c/Screenshot_20220427_165041.png)Mailbox: PairingTorsten GroteTorsten Grote