briar issueshttps://code.briarproject.org/briar/briar/-/issues2021-02-10T15:09:30Zhttps://code.briarproject.org/briar/briar/-/issues/1929Scan QR codes from DigiSafeGuard encryption app2021-02-10T15:09:30ZRion OcerusScan QR codes from DigiSafeGuard encryption appThis app could be much more robust, if preparation was made to share, & have shared QR codes from DigiSafe Guard (DSG)from SecuryptoThis app could be much more robust, if preparation was made to share, & have shared QR codes from DigiSafe Guard (DSG)from Securyptohttps://code.briarproject.org/briar/briar/-/issues/1931Add new contact FAB labels not visible in landscape orientation2021-02-11T13:25:47ZIvanaAdd new contact FAB labels not visible in landscape orientationWth your device in landscape orientation
Tap on + to add a contact
The icons for adding contacts at a distance or nearby are visible, but labels are not so user doesn't know what to tap.
The workaround is: use phone in portrait orienta...Wth your device in landscape orientation
Tap on + to add a contact
The icons for adding contacts at a distance or nearby are visible, but labels are not so user doesn't know what to tap.
The workaround is: use phone in portrait orientation, where labels are clearly visible
(Mattermost conversation 11/2/21: perhaps solution is to stack icons vertically?)
Low priority as the contact creation is successful in both landscape and portrait, plus workaround super easy - it's jsut a matter of labels showing/not showing...https://code.briarproject.org/briar/briar/-/issues/1932API 28 emulator stalled on "decrypting database..." screen2021-02-16T23:16:46ZSebastianAPI 28 emulator stalled on "decrypting database..." screenI tested the current master on a bunch of devices and emulators.
On API 28 I got the problem that briar does not get past the "decrypting database..." screen after entering the password. When switching back to a different app and then ba...I tested the current master on a bunch of devices and emulators.
On API 28 I got the problem that briar does not get past the "decrypting database..." screen after entering the password. When switching back to a different app and then back to briar, I'm properly logged in and can see the contact list.
Tried to reproduce on other devices, but it only appears on my API 28 emulator. Also tried emulators with levels 23, 24, 29 and 30 as well as real devices with levels 16 and 23. All work fine.
@akwizgran you do have API level 28 devices, maybe you could try and see if the problem can be reproduced there?https://code.briarproject.org/briar/briar/-/issues/1935ArrayIndexOutOfBoundsException in RecyclerView2021-11-04T11:03:23ZakwizgranArrayIndexOutOfBoundsException in RecyclerView* Android version: 10
* Briar version: 1.2.10 (54b852d)
Stacktrace:
```
java.lang.ArrayIndexOutOfBoundsException: length=5; index=7
at java.util.Arrays$ArrayList.get(Arrays.java:3766)
at androidx.recyclerview.selection.T...* Android version: 10
* Briar version: 1.2.10 (54b852d)
Stacktrace:
```
java.lang.ArrayIndexOutOfBoundsException: length=5; index=7
at java.util.Arrays$ArrayList.get(Arrays.java:3766)
at androidx.recyclerview.selection.ToolHandlerRegistry.get(ToolHandlerRegistry.java:69)
at androidx.recyclerview.selection.EventRouter.onInterceptTouchEvent(EventRouter.java:57)
at androidx.recyclerview.widget.RecyclerView.findInterceptingOnItemTouchListener(RecyclerView.java:3151)
at androidx.recyclerview.widget.RecyclerView.onInterceptTouchEvent(RecyclerView.java:3170)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2620)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3073)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2709)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3073)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2709)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3073)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2709)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3073)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2709)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3073)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2709)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3073)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2709)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3073)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2709)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3073)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2709)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3073)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2709)
at com.android.internal.policy.DecorView.superDispatchTouchEvent(DecorView.java:613)
at com.android.internal.policy.PhoneWindow.superDispatchTouchEvent(PhoneWindow.java:1933)
at android.app.Activity.dispatchTouchEvent(Activity.java:4147)
at androidx.appcompat.view.WindowCallbackWrapper.dispatchTouchEvent(WindowCallbackWrapper.java:69)
at androidx.appcompat.view.WindowCallbackWrapper.dispatchTouchEvent(WindowCallbackWrapper.java:69)
at com.android.internal.policy.DecorView.dispatchTouchEvent(DecorView.java:559)
at android.view.View.dispatchPointerEvent(View.java:13766)
at android.view.ViewRootImpl$ViewPostImeInputStage.processPointerEvent(ViewRootImpl.java:5824)
at android.view.ViewRootImpl$ViewPostImeInputStage.onProcess(ViewRootImpl.java:5619)
at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:5063)
at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:5116)
at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:5082)
at android.view.ViewRootImpl$AsyncInputStage.forward(ViewRootImpl.java:5239)
at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:5090)
at android.view.ViewRootImpl$AsyncInputStage.apply(ViewRootImpl.java:5296)
at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:5063)
at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:5116)
at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:5082)
at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:5090)
at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:5063)
at android.view.ViewRootImpl.deliverInputEvent(ViewRootImpl.java:7954)
at android.view.ViewRootImpl.doProcessInputEvents(ViewRootImpl.java:7905)
at android.view.ViewRootImpl.enqueueInputEvent(ViewRootImpl.java:7859)
at android.view.ViewRootImpl$WindowInputEventReceiver.onInputEvent(ViewRootImpl.java:8144)
at android.view.InputEventReceiver.dispatchInputEvent(InputEventReceiver.java:233)
at android.os.MessageQueue.nativePollOnce(Native Method)
at android.os.MessageQueue.next(MessageQueue.java:363)
at android.os.Looper.loop(Looper.java:173)
at android.app.ActivityThread.main(ActivityThread.java:8169)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:513)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1101)
```
Edited log:
```
02-12 21:12:09.963 I/BaseActivity: Starting ConversationActivity
02-12 21:12:09.965 I/BaseActivity: Resuming ConversationActivity
02-12 21:12:10.590 I/AndroidNetworkManager: Received broadcast android.intent.action.SCREEN_ON
```
Crash occurred at 21:12:18.697.
This looks like a RecyclerView bug. Opening a ticket in case we need to upgrade the relevant library.Android 1.4https://code.briarproject.org/briar/briar/-/issues/1936Contact was shown as offline when online2021-02-17T11:15:26ZakwizgranContact was shown as offline when online* Android version: 10
* Phone model: Huawei LYA-L29 (LYA-L29RU)
* Briar version: 1.2.13 (5fdc7e7)
* User feedback: "Very often displays incorrect information about the network status of another contact. The interlocutor is online for all...* Android version: 10
* Phone model: Huawei LYA-L29 (LYA-L29RU)
* Briar version: 1.2.13 (5fdc7e7)
* User feedback: "Very often displays incorrect information about the network status of another contact. The interlocutor is online for all network conditions, and displays as if he is not available."
Edited log:
```
02-12 20:59:14.597 I/DuplexOutgoingSession: Sending keepalive
02-12 20:59:44.598 I/DuplexOutgoingSession: Sending keepalive
02-12 20:59:53.360 I/AndroidNetworkManager: Received broadcast android.intent.action.SCREEN_ON
02-12 20:59:53.367 I/TorPlugin: Online: true, wifi: true, IPv6 only: false
02-12 20:59:53.367 I/TorPlugin: Country code: RU
02-12 20:59:53.367 I/TorPlugin: Charging: false
02-12 20:59:53.367 I/TorPlugin: Enabling network
02-12 20:59:53.367 I/TorPlugin: Using obfs4 bridges
02-12 20:59:53.367 I/TorPlugin: Disabling connection padding
02-12 21:00:02.666 I/PollerImpl: Polling plugin org.briarproject.bramble.bluetooth
02-12 21:00:02.672 I/ConnectionRegistryImpl: 0 contacts connected or better: org.briarproject.bramble.bluetooth
02-12 21:00:09.531 I/BaseActivity: Creating SplashScreenActivity
02-12 21:00:09.575 I/BaseActivity: Creating NavDrawerActivity
02-12 21:00:09.597 I/BaseActivity: Starting NavDrawerActivity
02-12 21:00:09.598 I/BaseActivity: Resuming NavDrawerActivity
02-12 21:00:10.158 I/BaseActivity: Destroying SplashScreenActivity
02-12 21:00:14.598 I/DuplexOutgoingSession: Sending keepalive
02-12 21:00:16.395 I/BaseActivity: Pausing NavDrawerActivity
02-12 21:00:16.818 I/BaseActivity: Stopping NavDrawerActivity
02-12 21:00:17.015 I/PollerImpl: Polling plugin org.briarproject.bramble.tor
02-12 21:00:17.019 I/ConnectionRegistryImpl: 1 contacts connected or better: org.briarproject.bramble.tor
02-12 21:00:17.020 I/TorPlugin: Connecting to v3 wwi[scrubbed]
02-12 21:00:17.793 I/TorPlugin: Connected to v3 wwi[scrubbed]
02-12 21:00:17.824 I/DuplexOutgoingSession: Generated ack: false
02-12 21:00:17.827 I/DuplexOutgoingSession: Generated batch: false
02-12 21:00:17.830 I/DuplexOutgoingSession: Generated offer: false
02-12 21:00:17.830 I/DuplexOutgoingSession: Generated request: false
02-12 21:00:18.981 I/ConnectionRegistryImpl: Outgoing connection registered: org.briarproject.bramble.tor
02-12 21:00:18.982 I/ConnectionRegistryImpl: Contact connected
02-12 21:00:18.982 I/ConnectionRegistryImpl: Setting connection priority: org.briarproject.bramble.tor
02-12 21:00:28.954 I/AndroidNetworkManager: Received broadcast android.intent.action.SCREEN_OFF
02-12 21:00:28.959 I/TorPlugin: Online: true, wifi: true, IPv6 only: false
02-12 21:00:28.959 I/TorPlugin: Country code: RU
02-12 21:00:28.959 I/TorPlugin: Charging: false
02-12 21:00:28.959 I/TorPlugin: Enabling network
02-12 21:00:28.959 I/TorPlugin: Using obfs4 bridges
02-12 21:00:28.959 I/TorPlugin: Disabling connection padding
02-12 21:00:33.955 I/TorPlugin: V3 descriptor uploaded
02-12 21:00:34.584 I/TorPlugin: V3 descriptor uploaded
02-12 21:00:34.720 I/TorPlugin: V3 descriptor uploaded
02-12 21:00:34.942 I/TorPlugin: V3 descriptor uploaded
02-12 21:00:35.030 I/TorPlugin: V3 descriptor uploaded
02-12 21:00:39.403 I/TorPlugin: V3 descriptor uploaded
02-12 21:00:44.598 I/DuplexOutgoingSession: Sending keepalive
02-12 21:00:47.823 I/DuplexOutgoingSession: Sending keepalive
02-12 21:00:50.914 I/AndroidNetworkManager: Received broadcast android.intent.action.SCREEN_ON
02-12 21:00:50.918 I/TorPlugin: Online: true, wifi: true, IPv6 only: false
02-12 21:00:50.918 I/TorPlugin: Country code: RU
02-12 21:00:50.918 I/TorPlugin: Charging: false
02-12 21:00:50.918 I/TorPlugin: Enabling network
02-12 21:00:50.918 I/TorPlugin: Using obfs4 bridges
02-12 21:00:50.918 I/TorPlugin: Disabling connection padding
02-12 21:00:57.771 I/BaseActivity: Starting NavDrawerActivity
02-12 21:00:57.772 I/BaseActivity: Resuming NavDrawerActivity
02-12 21:01:02.667 I/PollerImpl: Polling plugin org.briarproject.bramble.bluetooth
02-12 21:01:02.673 I/ConnectionRegistryImpl: 0 contacts connected or better: org.briarproject.bramble.bluetooth
02-12 21:01:05.717 I/TorPlugin: V3 descriptor uploaded
02-12 21:01:06.601 I/TorPlugin: V3 descriptor uploaded
02-12 21:01:06.988 I/BaseActivity: Pausing NavDrawerActivity
02-12 21:01:07.007 I/BaseActivity: Creating SettingsActivity
02-12 21:01:07.026 I/BaseActivity: Starting SettingsActivity
02-12 21:01:07.060 I/BaseActivity: Resuming SettingsActivity
02-12 21:01:07.539 I/BaseActivity: Stopping NavDrawerActivity
02-12 21:01:11.405 I/PollerImpl: Polling plugin org.briarproject.bramble.lan
02-12 21:01:11.418 I/ConnectionRegistryImpl: 0 contacts connected or better: org.briarproject.bramble.lan
02-12 21:01:11.539 I/BaseActivity: Pausing SettingsActivity
02-12 21:01:11.551 I/BaseActivity: Creating FeedbackActivity
```
Notes:
* A duplex connection to a contact is open at the start of the log
* Later log messages from the poller show that this is a Tor connection, rather than Bluetooth or LAN
* A second Tor connection is made at 21:00:17
* The Tor hidden service descriptor is being uploaded, which may indicate that the device recently came online, or may be the daily republishing of the descriptor
The reported issue could be a UI bug (failing to show/update the online state of one or both contacts), or it could be a network or power management issue at the contact's end, causing the contact's Tor connection to be lost.https://code.briarproject.org/briar/briar/-/issues/1937IndexOutOfBoundsException when selecting text2023-09-14T12:20:44ZakwizgranIndexOutOfBoundsException when selecting text* Android version: 7.1.1
* Phone model: OnePlus A5000 (OnePlus5)
* Briar version: 1.2.13 (5fdc7e7)
* User feedback: "I was trying to use this app offline to contact my friend."
Stacktrace:
```
java.lang.IndexOutOfBoundsException: setSpa...* Android version: 7.1.1
* Phone model: OnePlus A5000 (OnePlus5)
* Briar version: 1.2.13 (5fdc7e7)
* User feedback: "I was trying to use this app offline to contact my friend."
Stacktrace:
```
java.lang.IndexOutOfBoundsException: setSpan (-1 ... -1) starts before 0
at android.text.SpannableStringBuilder.checkRange(SpannableStringBuilder.java:1325)
at android.text.SpannableStringBuilder.setSpan(SpannableStringBuilder.java:683)
at android.text.SpannableStringBuilder.setSpan(SpannableStringBuilder.java:676)
at android.text.Selection.setSelection(Selection.java:76)
at android.text.method.ArrowKeyMovementMethod.onTouchEvent(ArrowKeyMovementMethod.java:291)
at android.widget.TextView.onTouchEvent(TextView.java:8546)
at android.view.View.dispatchTouchEvent(View.java:10180)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2632)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2321)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2632)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2321)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2632)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2321)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2632)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2321)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2632)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2321)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2632)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2321)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2632)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2321)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2632)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2321)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2632)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2321)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2632)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2321)
at com.android.internal.policy.DecorView.superDispatchTouchEvent(DecorView.java:414)
at com.android.internal.policy.PhoneWindow.superDispatchTouchEvent(PhoneWindow.java:1808)
at android.app.Activity.dispatchTouchEvent(Activity.java:3122)
at androidx.appcompat.view.WindowCallbackWrapper.dispatchTouchEvent(WindowCallbackWrapper.java:69)
at androidx.appcompat.view.WindowCallbackWrapper.dispatchTouchEvent(WindowCallbackWrapper.java:69)
at com.android.internal.policy.DecorView.dispatchTouchEvent(DecorView.java:376)
at android.view.View.dispatchPointerEvent(View.java:10400)
at android.view.ViewRootImpl$ViewPostImeInputStage.processPointerEvent(ViewRootImpl.java:4445)
at android.view.ViewRootImpl$ViewPostImeInputStage.onProcess(ViewRootImpl.java:4313)
at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:3860)
at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:3913)
at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:3879)
at android.view.ViewRootImpl$AsyncInputStage.forward(ViewRootImpl.java:4006)
at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:3887)
at android.view.ViewRootImpl$AsyncInputStage.apply(ViewRootImpl.java:4063)
at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:3860)
at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:3913)
at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:3879)
at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:3887)
at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:3860)
at android.view.ViewRootImpl.deliverInputEvent(ViewRootImpl.java:6254)
at android.view.ViewRootImpl.doProcessInputEvents(ViewRootImpl.java:6228)
at android.view.ViewRootImpl.enqueueInputEvent(ViewRootImpl.java:6189)
at android.view.ViewRootImpl$WindowInputEventReceiver.onInputEvent(ViewRootImpl.java:6357)
at android.view.InputEventReceiver.dispatchInputEvent(InputEventReceiver.java:185)
at android.os.MessageQueue.nativePollOnce(Native Method)
at android.os.MessageQueue.next(MessageQueue.java:323)
at android.os.Looper.loop(Looper.java:136)
at android.app.ActivityThread.main(ActivityThread.java:6138)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:893)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:783)
```
No log due to #1917.
Looks like a platform bug - I'm opening this ticket in case there's a known workaround.Android 1.4https://code.briarproject.org/briar/briar/-/issues/1938UnknownServiceException: Cleartext communication not permitted2021-02-17T12:27:36ZakwizgranUnknownServiceException: Cleartext communication not permitted* Android version: 10
* Phone model: Fairphone FP3
* Briar version: 1.2.13 (5fdc7e7)
* User feedback: "Import RSS fail"
Log snippet:
```
02-14 16:15:58.259 W/RssFeedImportActivity: java.net.UnknownServiceException: CLEARTEXT communicati...* Android version: 10
* Phone model: Fairphone FP3
* Briar version: 1.2.13 (5fdc7e7)
* User feedback: "Import RSS fail"
Log snippet:
```
02-14 16:15:58.259 W/RssFeedImportActivity: java.net.UnknownServiceException: CLEARTEXT communication to [scrubbed] not permitted by network security policy
java.net.UnknownServiceException: CLEARTEXT communication to [scrubbed] not permitted by network security policy
at okhttp3.internal.connection.RealConnection.connect(RealConnection.java:148)
at okhttp3.internal.connection.StreamAllocation.findConnection(StreamAllocation.java:258)
at okhttp3.internal.connection.StreamAllocation.findHealthyConnection(StreamAllocation.java:135)
at okhttp3.internal.connection.StreamAllocation.newStream(StreamAllocation.java:114)
at okhttp3.internal.connection.ConnectInterceptor.intercept(ConnectInterceptor.java:42)
at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:147)
at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:121)
at okhttp3.internal.cache.CacheInterceptor.intercept(CacheInterceptor.java:93)
at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:147)
at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:121)
at okhttp3.internal.http.BridgeInterceptor.intercept(BridgeInterceptor.java:93)
at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:147)
at okhttp3.internal.http.RetryAndFollowUpInterceptor.intercept(RetryAndFollowUpInterceptor.java:127)
at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:147)
at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:121)
at okhttp3.RealCall.getResponseWithInterceptorChain(RealCall.java:257)
at okhttp3.RealCall.execute(RealCall.java:93)
at org.briarproject.briar.feed.FeedManagerImpl.getFeedInputStream(FeedManagerImpl.java:385)
at org.briarproject.briar.feed.FeedManagerImpl.fetchSyndFeed(FeedManagerImpl.java:332)
at org.briarproject.briar.feed.FeedManagerImpl.addFeed(FeedManagerImpl.java:171)
at org.briarproject.briar.android.blog.RssFeedImportActivity.lambda$importFeed$2(RssFeedImportActivity.java:137)
at org.briarproject.briar.android.blog.RssFeedImportActivity.lambda$importFeed$2$RssFeedImportActivity(Unknown Source:0)
at org.briarproject.briar.android.blog.-$$Lambda$RssFeedImportActivity$yMsHehcx_j-aBTiyhHwsHyxrpIs.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:919)
```
Note: the domain name wasn't scrubbed from the original log. We should fix that.https://code.briarproject.org/briar/briar/-/issues/1940Check if Localizer requires context.createConfigurationContext()2021-02-17T18:49:59ZSebastianCheck if Localizer requires context.createConfigurationContext()It's possible that we can remove this entirely:
https://code.briarproject.org/briar/briar/-/merge_requests/1367#note_46627
Should be tested on many API levels and with toggling themes while testing.It's possible that we can remove this entirely:
https://code.briarproject.org/briar/briar/-/merge_requests/1367#note_46627
Should be tested on many API levels and with toggling themes while testing.https://code.briarproject.org/briar/briar/-/issues/1943Warn the user when the last shutdown wasn't clean2021-07-26T10:31:11ZakwizgranWarn the user when the last shutdown wasn't cleanShow some kind of warning (a notification, or something in the main UI when signing in) when the last shutdown wasn't clean (see #57).
We may also want to know whether the dirty shutdown happened before or after the last reboot.
Subtas...Show some kind of warning (a notification, or something in the main UI when signing in) when the last shutdown wasn't clean (see #57).
We may also want to know whether the dirty shutdown happened before or after the last reboot.
Subtask of #1824.https://code.briarproject.org/briar/briar/-/issues/1945Previous/next unread message buttons sometimes don't appear2021-03-29T13:00:18ZakwizgranPrevious/next unread message buttons sometimes don't appearOn the Galaxy Ace 2 (Android 4.1.2), the previous/next unread message buttons in forums and private groups don't always appear. The small badge showing the number of unread messages above/below is shown, but not the large button it's sup...On the Galaxy Ace 2 (Android 4.1.2), the previous/next unread message buttons in forums and private groups don't always appear. The small badge showing the number of unread messages above/below is shown, but not the large button it's supposed to be attached to.
Sometimes the large button appears late, after the badge, and sometimes it doesn't appear at all. Turning the screen off and on doesn't make a difference, but scrolling causes the large button to appear.
![device-2021-02-19-154020](/uploads/25f68f4b6ce2652f62d0a2d963675d12/device-2021-02-19-154020.png)https://code.briarproject.org/briar/briar/-/issues/1948Improve unread message highlighting in forums and private groups2021-02-20T11:46:50ZakwizgranImprove unread message highlighting in forums and private groupsIn a recent testing session we noticed that it's hard to distinguish between read and unread messages in forums and private groups, especially when using the dark theme.
Adding some kind of border or badge to unread messages, as well as...In a recent testing session we noticed that it's hard to distinguish between read and unread messages in forums and private groups, especially when using the dark theme.
Adding some kind of border or badge to unread messages, as well as or instead of using a different background colour, might help.https://code.briarproject.org/briar/briar/-/issues/1949Make it easier to distinguish between replying and writing a new post in a fo...2021-02-20T11:46:47ZakwizgranMake it easier to distinguish between replying and writing a new post in a forum or private groupIn a recent testing session we noticed that it was easy to accidentally write a top-level post in a forum or private group when intending to reply to another post.
Some things that might help:
* Increase the visual difference between th...In a recent testing session we noticed that it was easy to accidentally write a top-level post in a forum or private group when intending to reply to another post.
Some things that might help:
* Increase the visual difference between the "replying" state and the "writing a new post" state (eg look at what Signal does)
* Increase the size of the reply button so it's easier to hit
* Allow a reply to be started by right-swiping a post
Related to #1948, as we currently use the same highlighting for the post being replied to as we use for unread posts.https://code.briarproject.org/briar/briar/-/issues/1954Voice messages2023-02-26T08:07:02ZakwizgranVoice messagesSeveral users have asked to be able to send asynchronous voice messages (voice notes). This request was previously recorded under #985 (voice/video calls) but I'm moving it to its own ticket as the requirements and implementation are dif...Several users have asked to be able to send asynchronous voice messages (voice notes). This request was previously recorded under #985 (voice/video calls) but I'm moving it to its own ticket as the requirements and implementation are different.
Relevant comments from #985:
* https://code.briarproject.org/briar/briar/-/issues/985#note_28705
* https://code.briarproject.org/briar/briar/-/issues/985#note_44100
* https://code.briarproject.org/briar/briar/-/issues/985#note_47061https://code.briarproject.org/briar/briar/-/issues/1956Disguise/mask app2023-06-19T08:42:38ZCleopatraDisguise/mask appIt will be cool if there was a way to disguise the Briar app so that an adversary can't see the app icon on the user's device.
I like the way the [Umbrella app](https://github.com/securityfirst/Umbrella_android) does it. You can click ...It will be cool if there was a way to disguise the Briar app so that an adversary can't see the app icon on the user's device.
I like the way the [Umbrella app](https://github.com/securityfirst/Umbrella_android) does it. You can click a button to disguise the app as a calculator app. While in the calculator app, you shake the device to unmask the app.
![umbrella-mask](/uploads/d7f0d519ff301f4ea246ecab88c401c6/umbrella-mask.png)https://code.briarproject.org/briar/briar/-/issues/1959When the 'Disappearing messages' setting is changed during the message compos...2021-04-30T13:35:24ZIvanaWhen the 'Disappearing messages' setting is changed during the message composing, no warning message in landscape orientationSteps to reproduce
Start typing a message on device1 in portrait orientation and before sending it, go to the menu in the upper right corner and change the Disappearing messages setting to On.
Continue typing the message and then send...Steps to reproduce
Start typing a message on device1 in portrait orientation and before sending it, go to the menu in the upper right corner and change the Disappearing messages setting to On.
Continue typing the message and then send.
A warning message appears in the portrait orientation, that says: "Disappearing messages changed, since you started composing your message, disappearing messages have been enabled"
Now start typing a message and the change the Disappearing setting before sending the message, turn the phone to landscape and continue typing; Then send the message.
Actual results: The message is sent OK, but the warning message does not show.
Expected results: the warning message shoudl show the same way as it does in portrait orientationhttps://code.briarproject.org/briar/briar/-/issues/1963Onboarding when user activates Bluetooth plugin2022-03-04T16:52:31ZTorsten GroteOnboarding when user activates Bluetooth pluginWhen the user is actively turning on the Bluetooth plugin to communicate with users nearby, we should show an onboarding dialog making them aware of the "Connect via Bluetooth" feature accessible in the private conversation.When the user is actively turning on the Bluetooth plugin to communicate with users nearby, we should show an onboarding dialog making them aware of the "Connect via Bluetooth" feature accessible in the private conversation.https://code.briarproject.org/briar/briar/-/issues/1965Enable taking pictures directly from the message menu and store pictures take...2021-03-10T12:36:13ZSilent ResearchEnable taking pictures directly from the message menu and store pictures taken in the briar db only.For security reasons it would be very helpful if we could take pictures directly from the briar chat window and store pictures taken in the encrypted briar db only. At the moment I need to take a picture with the phones camera app and st...For security reasons it would be very helpful if we could take pictures directly from the briar chat window and store pictures taken in the encrypted briar db only. At the moment I need to take a picture with the phones camera app and store it in the standard photos folder of my device.https://code.briarproject.org/briar/briar/-/issues/1974briar-headless: multiple SLF4J bindings on tests2021-03-23T06:57:05ZSebastianbriar-headless: multiple SLF4J bindings on testsWhen running the tests on the `briar-headless` module, multiple bindings for SLF4J are found on the classpath, resulting in this warning:
```
SLF4J: Class path contains multiple SLF4J bindings.
SLF4J: Found binding in [jar:file:/home/z/...When running the tests on the `briar-headless` module, multiple bindings for SLF4J are found on the classpath, resulting in this warning:
```
SLF4J: Class path contains multiple SLF4J bindings.
SLF4J: Found binding in [jar:file:/home/z/gitlab/briar/briar-swing/briar-headless/build/libs/briar-headless.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in [jar:file:/home/z/.gradle/caches/modules-2/files-2.1/org.slf4j/slf4j-simple/1.7.26/dfb0de47f433c2a37dd44449c88d84b698cd5cf7/slf4j-simple-1.7.26.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation.
SLF4J: Actual binding is of type [org.slf4j.impl.SimpleLoggerFactory]
```
It's not too bad as it's actually the same binding that's being found twice. However I was wondering, why this is the case and if there's something misconfigured. I took a look and my analysis is: briar-headless builds a fat jar with all the dependencies included (including slf4j) and for the tests both the fat jar as well as all the dependencies are put on the classpath. That means, we have everything twice on the classpath, not just the slf4j bindings.
I think it would be good to solve this somehow and the solution would probably be to fix the classpath of the tests. Either
* (A) let the tests run with the non-fat (regular) headless jar plus dependencies, or
* (B) run it with the fat jar but exclude the dependencies from the testing classpathhttps://code.briarproject.org/briar/briar/-/issues/1976TimeoutException: android.os.BinderProxy.finalize() timed out after 10 seconds2021-03-24T16:19:38ZakwizgranTimeoutException: android.os.BinderProxy.finalize() timed out after 10 seconds* Android version: 7.1.2
* Phone model: Samsung SM-N7505 (hlltexx)
* Briar version: 1.2.16 (8a534b4)
Stacktrace:
```
android.os.BinderProxy.finalize() timed out after 10 seconds
java.util.concurrent.TimeoutException: android.os.BinderPr...* Android version: 7.1.2
* Phone model: Samsung SM-N7505 (hlltexx)
* Briar version: 1.2.16 (8a534b4)
Stacktrace:
```
android.os.BinderProxy.finalize() timed out after 10 seconds
java.util.concurrent.TimeoutException: android.os.BinderProxy.finalize() timed out after 10 seconds
at android.os.BinderProxy.destroy(Native Method)
at android.os.BinderProxy.finalize(Binder.java:677)
at java.lang.Daemons$FinalizerDaemon.doFinalize(Daemons.java:222)
at java.lang.Daemons$FinalizerDaemon.run(Daemons.java:209)
at java.lang.Thread.run(Thread.java:761)
```
Possibly related to #1901?https://code.briarproject.org/briar/briar/-/issues/1977SecurityException due to missing ACCESS_WIFI_STATE permission2021-11-04T11:03:25ZakwizgranSecurityException due to missing ACCESS_WIFI_STATE permission* Android version: 9
* Phone model: Samsung SM-A207F (a20sxx)
* Briar version: 1.2.13 (5fdc7e7)
Stacktrace:
```
WifiService: Neither user 10177 nor current process has android.permission.ACCESS_WIFI_STATE.
java.lang.SecurityException: W...* Android version: 9
* Phone model: Samsung SM-A207F (a20sxx)
* Briar version: 1.2.13 (5fdc7e7)
Stacktrace:
```
WifiService: Neither user 10177 nor current process has android.permission.ACCESS_WIFI_STATE.
java.lang.SecurityException: WifiService: Neither user 10177 nor current process has android.permission.ACCESS_WIFI_STATE.
at android.os.Parcel.createException(Parcel.java:1966)
at android.os.Parcel.readException(Parcel.java:1934)
at android.os.Parcel.readException(Parcel.java:1884)
at android.net.wifi.IWifiManager$Stub$Proxy.getConnectionInfo(IWifiManager.java:1928)
at android.net.wifi.WifiManager.getConnectionInfo(WifiManager.java:2099)
at org.briarproject.bramble.plugin.tcp.AndroidLanTcpPlugin.getWifiIpv4Address(AndroidLanTcpPlugin.java:129)
at org.briarproject.bramble.plugin.tcp.AndroidLanTcpPlugin.getPreferredWifiAddress(AndroidLanTcpPlugin.java:298)
at org.briarproject.bramble.plugin.tcp.AndroidLanTcpPlugin.lambda$updateConnectionStatus$0(AndroidLanTcpPlugin.java:260)
at org.briarproject.bramble.plugin.tcp.AndroidLanTcpPlugin.lambda$updateConnectionStatus$0$AndroidLanTcpPlugin(Unknown Source:0)
at org.briarproject.bramble.plugin.tcp.-$$Lambda$AndroidLanTcpPlugin$RnrvoJsXGo91N3aS5KUNVN0J3hU.run(Unknown Source:2)
at org.briarproject.bramble.PoliteExecutor.lambda$execute$0(PoliteExecutor.java:57)
at org.briarproject.bramble.PoliteExecutor.lambda$execute$0$PoliteExecutor(Unknown Source:0)
at org.briarproject.bramble.-$$Lambda$PoliteExecutor$wSvuPL6t_HUoaaqCVexrhJX_RSg.run(Unknown Source:6)
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:764)
Caused by: android.os.RemoteException: Remote stack trace:
at android.app.ContextImpl.enforce(ContextImpl.java:1924)
at android.app.ContextImpl.enforceCallingOrSelfPermission(ContextImpl.java:1952)
at com.android.server.wifi.WifiServiceImpl.enforceAccessPermission(WifiServiceImpl.java:1697)
at com.android.server.wifi.WifiServiceImpl.getConnectionInfo(WifiServiceImpl.java:3776)
at android.net.wifi.IWifiManager$Stub.onTransact(IWifiManager.java:341)
```
Log not available due to #1917.
This is a strange one. Briar requests ACCESS_WIFI_STATE in the manifest and it should be granted automatically at install time.
Perhaps the device is in multi-user mode and only one user can hold this permission at once? Or perhaps the device has a permission management app that allows this permission to be revoked?Android 1.4