briar issueshttps://code.briarproject.org/groups/briar/-/issues2022-11-23T16:02:58Zhttps://code.briarproject.org/briar/briar/-/issues/2154Reblogged entry appears duplicated in the main blog feed2022-11-23T16:02:58ZIvanaReblogged entry appears duplicated in the main blog feed**Steps to reproduce:**
Write a blog post and publish it.
Reblog it.
**Expected results:**
The reblogged entry is listed on top of the main blog feed, just once
**Actual results:**
The reblogged entry appears on top of the list in t...**Steps to reproduce:**
Write a blog post and publish it.
Reblog it.
**Expected results:**
The reblogged entry is listed on top of the main blog feed, just once
**Actual results:**
The reblogged entry appears on top of the list in the main blog feed, but it is duplicated. See the screenshot. ![device-2021-08-19-115546](/uploads/3e5487cecf1a8d889ca9c68116616360/device-2021-08-19-115546.png)
If then a new blog post is written, or even if the user taps onto a blogpost to go in and read it, and then returns to the main blog feed screen, the problem rights itself, and the duplicate doesn' show any more, see the screenshot
![device-2021-08-19-115754](/uploads/16f306efec8f250513b869093bdcab32/device-2021-08-19-115754.png)
It would seem that as soon as the main blog feed screen gets refreshed, the problem rights itself.https://code.briarproject.org/briar/briar/-/issues/2150Briar doesn't detect connectivity change when P2P hotspot is started2021-08-12T15:50:51ZakwizgranBriar doesn't detect connectivity change when P2P hotspot is startedWhen a P2P hotspot is started on the Pixel 2 (Android 11), Briar doesn't detect the connectivity change and thus the wifi plugin doesn't become active unless it's manually turned off and on again.When a P2P hotspot is started on the Pixel 2 (Android 11), Briar doesn't detect the connectivity change and thus the wifi plugin doesn't become active unless it's manually turned off and on again.https://code.briarproject.org/briar/briar/-/issues/2145Timestamps in contact list aren't updated when returning from conversation sc...2021-11-25T17:30:01ZakwizgranTimestamps in contact list aren't updated when returning from conversation screenhttps://code.briarproject.org/briar/briar/-/issues/2137UI bug when starting hotspot on Motorola phones that can't use Wi-Fi Direct w...2021-10-21T10:45:47ZakwizgranUI bug when starting hotspot on Motorola phones that can't use Wi-Fi Direct while connected to a networkSee [this comment](https://code.briarproject.org/briar/briar/-/issues/2137#note_53007) for a summary of the issue.
The Moto G 4G and Moto E3 are examples of phones affected by this issue. The Moto E6 Play is not affected.See [this comment](https://code.briarproject.org/briar/briar/-/issues/2137#note_53007) for a summary of the issue.
The Moto G 4G and Moto E3 are examples of phones affected by this issue. The Moto E6 Play is not affected.https://code.briarproject.org/briar/briar/-/issues/2132Power-save battery issues on Xiaomi MIUI 122022-06-08T15:48:17ZTorsten GrotePower-save battery issues on Xiaomi MIUI 12On my Redmi Note 10 5G device running Xiaomi MIUI 12 (Android 11), the system **doze white-listing dialog** is simply not appearing. During initial setup, pressing the obligatory button does nothing, but gives us the green check-mark. Th...On my Redmi Note 10 5G device running Xiaomi MIUI 12 (Android 11), the system **doze white-listing dialog** is simply not appearing. During initial setup, pressing the obligatory button does nothing, but gives us the green check-mark. Then after initial setup, our doze warning dialog pops up immediately, but pressing FIX also does nothing (uses same `ACTION_REQUEST_IGNORE_BATTERY_OPTIMIZATIONS` intent).
Our special Xiaomi instructions are appearing during initial setup, but they don't apply to MIUI 12 it seems. Instead, there's a dedicated system activity we can launch and ask the user to click on "no restrictions" there.
```
adb shell am start-activity -n com.miui.powerkeeper/com.miui.powerkeeper.ui.HiddenAppsConfigActivity --es package_name org.briarproject.briar.android.debug
```
This library could either be used directly or as a knowledge source for tricks like this:
https://github.com/thelittlefireman/AppKillerManagerhttps://code.briarproject.org/briar/briar/-/issues/2131Not respective system theme setting causes wrong colors on MIUI 122021-07-22T11:18:23ZTorsten GroteNot respective system theme setting causes wrong colors on MIUI 12Our default theme is the light theme. The expected new behavior is to default to the system theme setting, so all apps look the same.
MIUI 12 running Android 11 is forcing apps to use a dark theme somehow causing Briar to use a fake dar...Our default theme is the light theme. The expected new behavior is to default to the system theme setting, so all apps look the same.
MIUI 12 running Android 11 is forcing apps to use a dark theme somehow causing Briar to use a fake dark theme while set to the light theme which looks bad and gets colors wrong. Navigating to settings => Display and changing theme to system default fixes this.https://code.briarproject.org/briar/briar/-/issues/2129misleading warning when reporting feedback without internet connection2021-07-23T11:22:15ZJens Kortemisleading warning when reporting feedback without internet connectionWhen bluetooth only is on and a feedback is sent, then the german message (something like) "Die Nachricht wird nächstes Mal geschickt, wenn Du Dich einloggst" (translation by me: The message will be sent, when you register next time) is ...When bluetooth only is on and a feedback is sent, then the german message (something like) "Die Nachricht wird nächstes Mal geschickt, wenn Du Dich einloggst" (translation by me: The message will be sent, when you register next time) is imho misleading. It should be something like "the next time you login and have an internet connection, your feedback will be sent".https://code.briarproject.org/briar/briar/-/issues/2126Disappearing messages not deleting the messages after 7 days2021-07-23T14:35:14ZHimesaka NoaDisappearing messages not deleting the messages after 7 daysTo what I know and understand if you use Disapperaing message it should delete the message both on you and to the person you taking to. But to my case and to my friend we use Disappearing messages but when the time comes that it should b...To what I know and understand if you use Disapperaing message it should delete the message both on you and to the person you taking to. But to my case and to my friend we use Disappearing messages but when the time comes that it should be deleted the messages that we sent to each other are both present to mine and to my friend! Even my messages that I send to his is still present. Can you guys explain why? why it's not been deleted? is there something we need to do so the it will delete the messages? me and my friend are both enable the Disappearing feature.https://code.briarproject.org/briar/briar/-/issues/2113Tapping send button twice sends duplicate message2022-05-16T19:53:43ZakwizgranTapping send button twice sends duplicate message* Android version: 11
* Phone model: Pixel 3a (aosp_sargo)
* Briar version: 1.3.4 (76b7e6f)
* User feedback: "When I hit send twice it double sent the same message."
Log snippet:
```
05-31 23:06:14.209 I/BaseActivity: Starting Conversat...* Android version: 11
* Phone model: Pixel 3a (aosp_sargo)
* Briar version: 1.3.4 (76b7e6f)
* User feedback: "When I hit send twice it double sent the same message."
Log snippet:
```
05-31 23:06:14.209 I/BaseActivity: Starting ConversationActivity
05-31 23:06:14.211 I/BaseActivity: Resuming ConversationActivity
05-31 23:06:14.676 I/BaseActivity: Stopping NavDrawerActivity
05-31 23:06:16.966 I/ConversationActivity: Eagerly loading text for latest message
05-31 23:06:28.283 I/DuplexOutgoingSession: Sending keepalive
05-31 23:06:38.292 I/DuplexOutgoingSession: Sending keepalive
05-31 23:06:43.774 I/AutoDeleteManagerImpl: Sending message with auto-delete timer -1
05-31 23:06:44.370 I/DuplexOutgoingSession: Generated offer: false
05-31 23:06:44.389 I/DuplexOutgoingSession: Next send time decreased
05-31 23:06:44.405 I/DuplexOutgoingSession: Generated offer: true
05-31 23:06:44.405 I/DuplexOutgoingSession: Sent offer
05-31 23:06:44.424 I/DuplexOutgoingSession: Generated offer: false
05-31 23:06:45.299 I/DuplexOutgoingSession: Generated batch: true
05-31 23:06:45.299 I/ConversationActivity: Messages sent
05-31 23:06:45.299 I/DuplexOutgoingSession: Sent batch
05-31 23:06:45.317 I/DuplexOutgoingSession: Generated batch: false
05-31 23:06:46.268 I/ConversationActivity: Messages acked
05-31 23:06:58.284 I/DuplexOutgoingSession: Sending keepalive
05-31 23:07:01.226 I/AutoDeleteManagerImpl: Sending message with auto-delete timer -1
05-31 23:07:03.058 I/AutoDeleteManagerImpl: Sending message with auto-delete timer -1
05-31 23:07:03.119 I/DuplexOutgoingSession: Generated offer: false
05-31 23:07:03.159 I/DuplexOutgoingSession: Generated offer: true
05-31 23:07:03.159 I/DuplexOutgoingSession: Sent offer
05-31 23:07:03.181 I/DuplexOutgoingSession: Generated offer: false
05-31 23:07:03.229 I/DuplexOutgoingSession: Generated offer: false
05-31 23:07:04.144 I/DuplexOutgoingSession: Generated batch: true
05-31 23:07:04.144 I/ConversationActivity: Messages sent
05-31 23:07:04.144 I/DuplexOutgoingSession: Sent batch
05-31 23:07:04.163 I/DuplexOutgoingSession: Generated batch: false
05-31 23:07:04.915 I/ConversationActivity: Messages acked
```
Earlier in the log, `Trim memory: running critically low` is logged several times, so the phone may be responding slower than usual.https://code.briarproject.org/briar/briar/-/issues/2108IllegalArgumentException when resuming NavDrawerActivity after signing in2021-11-04T11:03:26ZakwizgranIllegalArgumentException when resuming NavDrawerActivity after signing in* Briar version: 1.3.5
* User feedback: "I just updated Briar and tried to sign in again."
Stacktrace:
```
java.lang.IllegalArgumentException
at android.os.Parcel.createException(Parcel.java:1954)
at android.os.Parcel.re...* Briar version: 1.3.5
* User feedback: "I just updated Briar and tried to sign in again."
Stacktrace:
```
java.lang.IllegalArgumentException
at android.os.Parcel.createException(Parcel.java:1954)
at android.os.Parcel.readException(Parcel.java:1918)
at android.os.Parcel.readException(Parcel.java:1868)
at android.view.IWindowSession$Stub$Proxy.addToDisplay(IWindowSession.java:826)
at android.view.ViewRootImpl.setView(ViewRootImpl.java:758)
at android.view.WindowManagerGlobal.addView(WindowManagerGlobal.java:356)
at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:93)
at android.app.ActivityThread.handleResumeActivity(ActivityThread.java:3906)
at android.app.servertransaction.ResumeActivityItem.execute(ResumeActivityItem.java:51)
at android.app.servertransaction.TransactionExecutor.executeLifecycleState(TransactionExecutor.java:145)
at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:70)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1816)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loop(Looper.java:193)
at android.app.ActivityThread.main(ActivityThread.java:6718)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:491)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:858)
Caused by: android.os.RemoteException: Remote stack trace:
at android.view.SurfaceControl.nativeCreate(Native Method)
at android.view.SurfaceControl.<init>(SurfaceControl.java:630)
at android.view.SurfaceControl.<init>(SurfaceControl.java:60)
at android.view.SurfaceControl$Builder.build(SurfaceControl.java:386)
at com.android.server.wm.WindowContainer.onParentSet(WindowContainer.java:184)
```
Edited log:
```
07-06 13:21:56.622 I/BriarApplicationImpl: Created
07-06 13:21:56.687 I/AccountManagerImpl: Found database key in primary file
07-06 13:26:24.732 I/BaseActivity: Creating SplashScreenActivity
07-06 13:26:24.750 I/BaseActivity: Starting SplashScreenActivity
07-06 13:26:24.751 I/BaseActivity: Resuming SplashScreenActivity
07-06 13:26:25.270 I/BaseActivity: Pausing SplashScreenActivity
07-06 13:26:25.281 I/BaseActivity: Creating NavDrawerActivity
07-06 13:26:25.341 I/BaseActivity: Starting NavDrawerActivity
07-06 13:26:25.342 I/BaseActivity: Resuming NavDrawerActivity
07-06 13:26:25.342 I/BriarActivity: Not signed in, launching StartupActivity
07-06 13:26:25.349 I/BaseActivity: Pausing NavDrawerActivity
07-06 13:26:25.356 I/BaseActivity: Creating StartupActivity
07-06 13:26:25.363 I/AccountManagerImpl: Found database key in primary file
07-06 13:26:25.365 I/BaseActivity: Starting StartupActivity
07-06 13:26:25.416 I/BaseActivity: Resuming StartupActivity
07-06 13:26:25.937 I/BaseActivity: Stopping NavDrawerActivity
07-06 13:26:25.948 I/BaseActivity: Stopping SplashScreenActivity
07-06 13:26:25.950 I/BaseActivity: Destroying SplashScreenActivity
07-06 13:26:33.878 I/AccountManagerImpl: Found database key in primary file
07-06 13:26:34.876 I/AndroidKeyStrengthener: Loaded key from keystore
07-06 13:26:34.909 I/BriarService: Created
07-06 13:26:34.947 I/LifecycleManagerImpl: Opening database
07-06 13:26:34.951 I/H2Database: Reopening DB: true
07-06 13:26:35.791 I/IdentityManagerImpl: Identity loaded
07-06 13:26:35.800 I/LifecycleManagerImpl: Starting services
07-06 13:26:35.801 I/CleanupManagerImpl: Scheduling cleanup task in 1000 ms
07-06 13:26:35.804 I/AndroidNetworkManager: Received broadcast android.net.conn.CONNECTIVITY_CHANGE
07-06 13:26:35.804 I/AndroidNetworkManager: Received broadcast android.net.wifi.p2p.THIS_DEVICE_CHANGED
07-06 13:26:35.933 I/PluginManagerImpl: Starting simplex plugins
07-06 13:26:35.933 I/PluginManagerImpl: Starting duplex plugins
07-06 13:26:35.939 I/PluginManagerImpl: org.briarproject.bramble.bluetooth changed from state STARTING_STOPPING to DISABLED
07-06 13:26:35.939 I/PluginViewModel: TransportStateEvent: org.briarproject.bramble.bluetooth is DISABLED
07-06 13:26:35.956 I/AbstractBluetoothPlugin: Local address null
07-06 13:26:35.959 I/BaseActivity: Pausing StartupActivity
07-06 13:26:35.964 I/BriarActivity: Recreating NavDrawerActivity after signing in
07-06 13:26:35.966 I/BaseActivity: Starting NavDrawerActivity
07-06 13:26:35.967 I/BaseActivity: Resuming NavDrawerActivity
```Android 1.4https://code.briarproject.org/briar/briar/-/issues/2107IndexOutOfBoundsException in RecyclerView, probably in ConversationActivity2021-11-04T11:03:26ZakwizgranIndexOutOfBoundsException in RecyclerView, probably in ConversationActivity* Android version: 9
* Phone model: Xiaomi Mi Note 3 (jason)
* Briar version: 1.3.5 (0040753)
Stacktrace:
```
java.lang.IndexOutOfBoundsException: Index: 0, Size: 0
at java.util.ArrayList.get(ArrayList.java:437)
at andro...* Android version: 9
* Phone model: Xiaomi Mi Note 3 (jason)
* Briar version: 1.3.5 (0040753)
Stacktrace:
```
java.lang.IndexOutOfBoundsException: Index: 0, Size: 0
at java.util.ArrayList.get(ArrayList.java:437)
at androidx.recyclerview.widget.StaggeredGridLayoutManager$Span.calculateCachedStart(StaggeredGridLayoutManager.java:2531)
at androidx.recyclerview.widget.StaggeredGridLayoutManager$Span.getStartLine(StaggeredGridLayoutManager.java:2548)
at androidx.recyclerview.widget.StaggeredGridLayoutManager.checkSpanForGap(StaggeredGridLayoutManager.java:410)
at androidx.recyclerview.widget.StaggeredGridLayoutManager.hasGapsToFix(StaggeredGridLayoutManager.java:359)
at androidx.recyclerview.widget.StaggeredGridLayoutManager.checkForGaps(StaggeredGridLayoutManager.java:282)
at androidx.recyclerview.widget.StaggeredGridLayoutManager.onScrollStateChanged(StaggeredGridLayoutManager.java:317)
at androidx.recyclerview.widget.RecyclerView.dispatchOnScrollStateChanged(RecyclerView.java:5197)
at androidx.recyclerview.widget.RecyclerView.setScrollState(RecyclerView.java:1550)
at androidx.recyclerview.widget.RecyclerView.cancelScroll(RecyclerView.java:3444)
at androidx.recyclerview.widget.RecyclerView.onTouchEvent(RecyclerView.java:3422)
at android.view.View.dispatchTouchEvent(View.java:12527)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3000)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2705)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3002)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2719)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3002)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2719)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3002)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2719)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3032)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2719)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3032)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2719)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3054)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2719)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3032)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2719)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3032)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2719)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3032)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2719)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3032)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2719)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3032)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2719)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3032)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2719)
at com.android.internal.policy.DecorView.superDispatchTouchEvent(DecorView.java:444)
at com.android.internal.policy.PhoneWindow.superDispatchTouchEvent(PhoneWindow.java:1830)
at android.app.Activity.dispatchTouchEvent(Activity.java:3465)
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:402)
at android.view.View.dispatchPointerEvent(View.java:12768)
at android.view.ViewRootImpl$ViewPostImeInputStage.processPointerEvent(ViewRootImpl.java:5303)
at android.view.ViewRootImpl$ViewPostImeInputStage.onProcess(ViewRootImpl.java:5103)
at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:4618)
at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:4671)
at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:4637)
at android.view.ViewRootImpl$AsyncInputStage.forward(ViewRootImpl.java:4777)
at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:4645)
at android.view.ViewRootImpl$AsyncInputStage.apply(ViewRootImpl.java:4834)
at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:4618)
at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:4671)
at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:4637)
at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:4645)
at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:4618)
at android.view.ViewRootImpl.deliverInputEvent(ViewRootImpl.java:7346)
at android.view.ViewRootImpl.doProcessInputEvents(ViewRootImpl.java:7315)
at android.view.ViewRootImpl.enqueueInputEvent(ViewRootImpl.java:7276)
at android.view.ViewRootImpl$WindowInputEventReceiver.onInputEvent(ViewRootImpl.java:7452)
at android.view.InputEventReceiver.dispatchInputEvent(InputEventReceiver.java:250)
at android.view.InputEventReceiver.nativeConsumeBatchedInputEvents(Native Method)
at android.view.InputEventReceiver.consumeBatchedInputEvents(InputEventReceiver.java:212)
at android.view.ViewRootImpl.doConsumeBatchedInput(ViewRootImpl.java:7420)
at android.view.ViewRootImpl$ConsumeBatchedInputRunnable.run(ViewRootImpl.java:7475)
at android.view.Choreographer$CallbackRecord.run(Choreographer.java:1089)
at android.view.Choreographer.doCallbacks(Choreographer.java:885)
at android.view.Choreographer.doFrame(Choreographer.java:810)
at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:1075)
at android.os.Handler.handleCallback(Handler.java:873)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:201)
at android.app.ActivityThread.main(ActivityThread.java:6821)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:547)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:873)
```
Last lines of log:
```
07-03 07:25:33.246 I/AutoDeleteManagerImpl: Sending message with auto-delete timer 604800000
07-03 07:25:33.316 I/DuplexOutgoingSession: Generated offer: true
07-03 07:25:33.316 I/DuplexOutgoingSession: Sent offer
07-03 07:25:33.323 I/DuplexOutgoingSession: Generated offer: false
07-03 07:25:33.880 I/DuplexOutgoingSession: Generated batch: true
07-03 07:25:33.880 I/ConversationActivity: Messages sent
07-03 07:25:33.880 I/DuplexOutgoingSession: Sent batch
07-03 07:25:33.886 I/DuplexOutgoingSession: Generated batch: false
07-03 07:25:33.993 I/ConversationActivity: Messages acked
```Android 1.4https://code.briarproject.org/briar/briar/-/issues/2098IllegalStateException when creating ConversationActivity2021-11-04T11:03:25ZakwizgranIllegalStateException when creating ConversationActivity* Android version: 9
* Phone model: Xiaomi Redmi Note 8T (willow_eea)
* Briar version: 1.2.20 (62cca13)
Stacktrace:
```
Unable to start activity ComponentInfo{org.briarproject.briar.android/org.briarproject.briar.android.conversation.Co...* Android version: 9
* Phone model: Xiaomi Redmi Note 8T (willow_eea)
* Briar version: 1.2.20 (62cca13)
Stacktrace:
```
Unable to start activity ComponentInfo{org.briarproject.briar.android/org.briarproject.briar.android.conversation.ConversationActivity}: java.lang.IllegalStateException
java.lang.RuntimeException: Unable to start activity ComponentInfo{org.briarproject.briar.android/org.briarproject.briar.android.conversation.ConversationActivity}: java.lang.IllegalStateException
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2984)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3119)
at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:78)
at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:108)
at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:68)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1839)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loop(Looper.java:201)
at android.app.ActivityThread.main(ActivityThread.java:6864)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:547)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:873)
Caused by: java.lang.IllegalStateException
at org.briarproject.briar.android.conversation.ConversationActivity.onCreate(ConversationActivity.java:222)
at android.app.Activity.performCreate(Activity.java:7232)
at android.app.Activity.performCreate(Activity.java:7221)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1272)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2964)
... 11 more
```
Log:
```
06-05 14:42:25.705 I/BriarApplicationImpl: Created
06-05 14:42:25.757 I/BaseActivity: Creating ConversationActivity
```
It looks like the app is being relaunched after being killed, in some way that creates ConversationActivity first (recent apps list or message notification?) and the contact ID is missing from the intent.Android 1.4https://code.briarproject.org/briar/briar/-/issues/2096Crash after leaving Briar in the background before the account is actually cr...2023-03-15T12:34:51ZIvanaCrash after leaving Briar in the background before the account is actually created**Steps to reproduce **
- Install Briar on a device (I used HTC One M9 API24 and Nokia 3.1 API30)
- Open Briar app
- Create a nickname, tap Next
- Crete the password and confirm it, tap Next
- Then allow Briar to run in the background, ...**Steps to reproduce **
- Install Briar on a device (I used HTC One M9 API24 and Nokia 3.1 API30)
- Open Briar app
- Create a nickname, tap Next
- Crete the password and confirm it, tap Next
- Then allow Briar to run in the background, and then when given information 'To run in the background, Briar needs to be locked to the recent apps list' tap on 'Protect Briar'
- Then you're given this dialogue box ![device-2021-06-29-114947](/uploads/43a9fe5f5e6f9a7efe0ac765a0b9d089/device-2021-06-29-114947.png)
- at that point leave briar and go to check if briar is in the list of recently used apps
- do not change anything, just look, then come back to Briar
- Briar crashes
Here are log files of the three crashes
[crash_HTC_One_M9_29062021.txt](/uploads/3dc78f523e125a26b53bee65aec1d3bb/crash_HTC_One_M9_29062021.txt)
[Crash_HTC_One_M9_2_29062021.txt](/uploads/b1138ed3eb6bbd319ff6cbaeb64bc4d6/Crash_HTC_One_M9_2_29062021.txt)
[crash_Nokia_3.1_29062021.txt](/uploads/c477c5f0c459fc17209a18b2b620108f/crash_Nokia_3.1_29062021.txt)Android 1.4https://code.briarproject.org/briar/briar/-/issues/2089Headless BriarService ignores startup errors2022-01-03T16:37:55ZakwizgranHeadless BriarService ignores startup errorsStartup errors returned by LifecycleManager#startServices() are ignored by briar-headless's BriarService.Startup errors returned by LifecycleManager#startServices() are ignored by briar-headless's BriarService.https://code.briarproject.org/briar/briar/-/issues/2085No transport keys for contact who has deleted us and been reintroduced2023-03-31T13:23:27ZakwizgranNo transport keys for contact who has deleted us and been reintroducedIf a contact has deleted us and then been reintroduced by a mutual contact, we end up without any transport keys that can be used for communicating with the reintroduced contact.
When deleting us, the contact will have removed the keys ...If a contact has deleted us and then been reintroduced by a mutual contact, we end up without any transport keys that can be used for communicating with the reintroduced contact.
When deleting us, the contact will have removed the keys that we previously shared. When re-adding us, the contact will have stored the new keys created by the introduction, but we fail to store these when a ContactExistsException is thrown:
https://code.briarproject.org/briar/briar/-/blob/00407539d32147995ffb184ff77ab7c9c53c9920/briar-core/src/main/java/org/briarproject/briar/introduction/IntroduceeProtocolEngine.java#L453
The contradictory comments at lines 457 and 472 above suggest some confusion about the right behaviour in this case. To communicate with the reintroduced contact we should store the new keys, which will be used in preference to any existing keys as they're newer. In other words, the call to addRotationKeys() should be moved outside the try/catch block.https://code.briarproject.org/briar/briar/-/issues/2058Disabled settings are difficult to read2021-06-08T12:56:08ZakwizgranDisabled settings are difficult to read* Briar version: 1.3.4
* User feedback: "The greyed out options in the settings are a bit to difficult to read (for me).
A bit more contrast could still signal it's greyed out, but offer better readability."* Briar version: 1.3.4
* User feedback: "The greyed out options in the settings are a bit to difficult to read (for me).
A bit more contrast could still signal it's greyed out, but offer better readability."https://code.briarproject.org/briar/briar/-/issues/2057AssertionError when selecting image to send2023-09-14T12:55:21ZakwizgranAssertionError when selecting image to send* Android version: 9
* Phone model: Honor KIW-L24 (lineage_kiwi)
* Briar version: 1.3.3 (c647c52)
Log snippet:
```
05-26 19:25:27.225 I/BaseActivity: Pausing NavDrawerActivity
05-26 19:25:27.302 I/BaseActivity: Creating ConversationActi...* Android version: 9
* Phone model: Honor KIW-L24 (lineage_kiwi)
* Briar version: 1.3.3 (c647c52)
Log snippet:
```
05-26 19:25:27.225 I/BaseActivity: Pausing NavDrawerActivity
05-26 19:25:27.302 I/BaseActivity: Creating ConversationActivity
05-26 19:25:27.389 I/ConversationViewModel: PrivateMessageFormat loaded: TEXT_IMAGES_AUTO_DELETE
05-26 19:25:27.536 I/BaseActivity: Starting ConversationActivity
05-26 19:25:27.540 I/BaseActivity: Resuming ConversationActivity
05-26 19:25:27.737 I/ConversationActivity: Eagerly loading text for latest message
05-26 19:25:27.850 I/BaseActivity: Pausing ConversationActivity
05-26 19:25:27.992 I/BaseActivity: Creating ConversationActivity
05-26 19:25:28.024 I/ConversationViewModel: PrivateMessageFormat loaded: TEXT_IMAGES_AUTO_DELETE
05-26 19:25:28.157 I/BaseActivity: Starting ConversationActivity
05-26 19:25:28.163 I/BaseActivity: Resuming ConversationActivity
05-26 19:25:28.816 I/ConversationActivity: Eagerly loading text for latest message
05-26 19:25:28.819 I/BaseActivity: Stopping ConversationActivity
05-26 19:25:28.831 I/BaseActivity: Destroying ConversationActivity
05-26 19:25:30.983 I/BaseActivity: Pausing ConversationActivity
05-26 19:25:31.214 I/BaseActivity: Stopping NavDrawerActivity
05-26 19:25:31.698 I/BaseActivity: Stopping ConversationActivity
```
Stacktrace:
```
java.lang.AssertionError
at org.briarproject.briar.android.view.TextAttachmentController.onImageReceived(TextAttachmentController.java:166)
at org.briarproject.briar.android.conversation.ConversationActivity.onActivityResult(ConversationActivity.java:319)
at android.app.Activity.dispatchActivityResult(Activity.java:7462)
at android.app.ActivityThread.deliverResults(ActivityThread.java:4391)
at android.app.ActivityThread.handleSendResult(ActivityThread.java:4440)
at android.app.servertransaction.ActivityResultItem.execute(ActivityResultItem.java:49)
at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:108)
at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:68)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1816)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loop(Looper.java:193)
at android.app.ActivityThread.main(ActivityThread.java:6718)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:491)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:858)
```Android 1.4https://code.briarproject.org/briar/briar/-/issues/2049Fast scrolling in galery closes Briar2021-06-08T14:37:37ZbodemsFast scrolling in galery closes BriarI'm testing Briar 1.3.4 via the F-Droid repo on Android 11 (Google Pixel 3a with GrapheneOS). When I want to share an image or set the profile pic and scroll fast through the image galery (because I want to use a photo I took long ago), ...I'm testing Briar 1.3.4 via the F-Droid repo on Android 11 (Google Pixel 3a with GrapheneOS). When I want to share an image or set the profile pic and scroll fast through the image galery (because I want to use a photo I took long ago), sometimes Briar close itself. It doesn't crash, because I don't have to log in again and don't have to enter my screen lock password and I can just continue, but it is a little bit annoying.https://code.briarproject.org/briar/briar/-/issues/2047Main Blog feed page - snack bar 'Scroll to' not working after import of a new...2022-11-17T14:31:44ZIvanaMain Blog feed page - snack bar 'Scroll to' not working after import of a new RSS feedSteps to reproduce:
1. Go to Settings > Blogs > Import RSS Feed
2. Type in the address of an rss feed (I used these ones: https://www.ed.gov/feed, http://feeds.nature.com/nature/rss/current, http://www.newyorker.com/feed/humor)
3. After...Steps to reproduce:
1. Go to Settings > Blogs > Import RSS Feed
2. Type in the address of an rss feed (I used these ones: https://www.ed.gov/feed, http://feeds.nature.com/nature/rss/current, http://www.newyorker.com/feed/humor)
3. After a successful import, tap the back button (upper left hand side corner of the Briar app screen) to return to the main blog feed page
4. At the bottom of the screen there is a brief message 'new blog post received' and the tappable words 'SCROLL TO' in blue
5. Tap the SCROLL TO
Expected results:
1. Briar should scroll to the new blogs that have been received via the imported RSS feed
Actual results
1. No scrolling happens. Reproduced on Nokia 3.1, HTCOneM9 and Pixel2. ![device-2021-05-19-121740](/uploads/b3d3e0685ece690fea28db744a9e4bd0/device-2021-05-19-121740.mp4)
However, if after the RSS feed import I tap the device's own back button (on device, not on the app screen) to return to the main blog page, then scrolling happens correctly (and it does when other blogs are received as well). ![device-2021-05-19-121543](/uploads/e43c58468525c059cf35081cfc2a3171/device-2021-05-19-121543.mp4)
Master, dated 17.5 githash: b0faab9https://code.briarproject.org/briar/briar/-/issues/2030IllegalAccessException: Tried to access visual service WindowManager from a n...2021-10-21T10:39:48ZakwizgranIllegalAccessException: Tried to access visual service WindowManager from a non-visual ContextThe Pixel 2 logs the following error when trying to connect via Bluetooth. There's no crash and the toast is shown despite the error.
```
2021-05-06 14:27:52.650 8451-8451/org.briarproject.briar.android.debug E/ContextImpl: Tried to acc...The Pixel 2 logs the following error when trying to connect via Bluetooth. There's no crash and the toast is shown despite the error.
```
2021-05-06 14:27:52.650 8451-8451/org.briarproject.briar.android.debug E/ContextImpl: Tried to access visual service WindowManager from a non-visual Context:org.briarproject.briar.android.BriarApplicationImpl@61e162e Visual services, such as WindowManager, WallpaperService or LayoutInflater should be accessed from Activity or other visual Context. Use an Activity or a Context created with Context#createWindowContext(int, Bundle), which are adjusted to the configuration and visual bounds of an area on screen.
java.lang.IllegalAccessException: Tried to access visual service WindowManager from a non-visual Context:org.briarproject.briar.android.BriarApplicationImpl@61e162e
at android.app.ContextImpl.getSystemService(ContextImpl.java:1916)
at android.content.ContextWrapper.getSystemService(ContextWrapper.java:803)
at android.content.Context.getSystemService(Context.java:3705)
at android.widget.ToastPresenter.<init>(ToastPresenter.java:81)
at android.widget.Toast$TN.<init>(Toast.java:615)
at android.widget.Toast.<init>(Toast.java:167)
at android.widget.Toast.makeText(Toast.java:492)
at android.widget.Toast.makeText(Toast.java:480)
at android.widget.Toast.makeText(Toast.java:519)
at org.briarproject.briar.android.conversation.BluetoothConnecter.lambda$showToast$3(BluetoothConnecter.java:255)
at org.briarproject.briar.android.conversation.BluetoothConnecter.lambda$showToast$3$BluetoothConnecter(Unknown Source:0)
at org.briarproject.briar.android.conversation.-$$Lambda$BluetoothConnecter$jmWLO-6UfeDYoCXxklJACu5-eRY.run(Unknown Source:4)
at android.os.Handler.handleCallback(Handler.java:938)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:223)
at android.app.ActivityThread.main(ActivityThread.java:7656)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:592)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:947)
```