briar issueshttps://code.briarproject.org/groups/briar/-/issues2021-11-11T16:04:24Zhttps://code.briarproject.org/briar/briar/-/issues/2216SecurityException: Permission Denial for MANAGE_DOCUMENTS2021-11-11T16:04:24ZakwizgranSecurityException: Permission Denial for MANAGE_DOCUMENTSThis looks similar to #2143 and may be the same device as https://code.briarproject.org/briar/briar/-/issues/2143#note_56595, but with a different stacktrace.
* Android version: 5.1
* Phone model: Meizu M3s
* Briar version: 1.3.8 (80767...This looks similar to #2143 and may be the same device as https://code.briarproject.org/briar/briar/-/issues/2143#note_56595, but with a different stacktrace.
* Android version: 5.1
* Phone model: Meizu M3s
* Briar version: 1.3.8 (8076775)
* User feedback: "I uploaded a JPG photo, crashed."
Stacktrace:
```
java.lang.SecurityException: Permission Denial: opening provider com.android.providers.media.MediaDocumentsProvider from ProcessRecord{127a6dac 23863:org.briarproject.briar.android/u0a98} (pid=23863, uid=10098) requires android.permission.MANAGE_DOCUMENTS or android.permission.MANAGE_DOCUMENTS
at android.os.Parcel.readException(Parcel.java:1546)
at android.os.Parcel.readException(Parcel.java:1499)
at android.app.ActivityManagerProxy.getContentProvider(ActivityManagerNative.java:3579)
at android.app.ActivityThread.acquireProvider(ActivityThread.java:5203)
at android.app.ContextImpl$ApplicationContentResolver.acquireUnstableProvider(ContextImpl.java:2657)
at android.content.ContentResolver.acquireUnstableProvider(ContentResolver.java:1500)
at android.content.ContentResolver.openTypedAssetFileDescriptor(ContentResolver.java:1106)
at android.content.ContentResolver.openAssetFileDescriptor(ContentResolver.java:946)
at android.content.ContentResolver.openInputStream(ContentResolver.java:671)
at org.briarproject.briar.android.attachment.AttachmentCreationTask.storeAttachment(AttachmentCreationTask.java:103)
at org.briarproject.briar.android.attachment.AttachmentCreationTask.processUri(AttachmentCreationTask.java:79)
at org.briarproject.briar.android.attachment.AttachmentCreationTask.storeAttachments(AttachmentCreationTask.java:68)
at org.briarproject.briar.android.attachment.AttachmentCreatorImpl.lambda$null$0(AttachmentCreatorImpl.java:94)
at org.briarproject.briar.android.attachment.AttachmentCreatorImpl.lambda$null$0$AttachmentCreatorImpl(AttachmentCreatorImpl.java)
at org.briarproject.briar.android.attachment.-$$Lambda$AttachmentCreatorImpl$buxZfdoUf6j50-ilIY-ZnTGRVoE.run(lambda)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
at java.lang.Thread.run(Thread.java:818)
```https://code.briarproject.org/briar/briar/-/issues/2215IllegalStateException when changing fragments in SettingsActivity2021-11-11T16:04:24ZakwizgranIllegalStateException when changing fragments in SettingsActivity* Android version: 4.2.2
* Briar version: 1.3.8 (8076775)
* Phone model: TCT One Touch 4033D (Yaris_M)
* User feedback: "I opened another app"
Last lines of log:
```
11-01 08:40:18.454 I/BaseActivity: Pausing TransportsActivity
11-01 08...* Android version: 4.2.2
* Briar version: 1.3.8 (8076775)
* Phone model: TCT One Touch 4033D (Yaris_M)
* User feedback: "I opened another app"
Last lines of log:
```
11-01 08:40:18.454 I/BaseActivity: Pausing TransportsActivity
11-01 08:40:18.467 I/BaseActivity: Starting NavDrawerActivity
11-01 08:40:18.467 I/BaseActivity: Resuming NavDrawerActivity
11-01 08:40:26.200 I/BaseActivity: Pausing NavDrawerActivity
11-01 08:40:26.228 I/BaseActivity: Creating SettingsActivity
11-01 08:40:26.280 I/BaseActivity: Starting SettingsActivity
11-01 08:40:26.280 I/BaseActivity: Resuming SettingsActivity
11-01 08:40:27.005 I/BaseActivity: Stopping TransportsActivity
11-01 08:40:27.007 I/BaseActivity: Destroying TransportsActivity
11-01 08:40:27.016 I/BaseActivity: Stopping NavDrawerActivity
11-01 08:40:31.697 I/BaseActivity: Pausing SettingsActivity
```
Stacktrace:
```
java.lang.IllegalStateException: Can not perform this action after onSaveInstanceState
at androidx.fragment.app.FragmentManager.checkStateLoss(FragmentManager.java:1844)
at androidx.fragment.app.FragmentManager.enqueueAction(FragmentManager.java:1884)
at androidx.fragment.app.BackStackRecord.commitInternal(BackStackRecord.java:329)
at androidx.fragment.app.BackStackRecord.commit(BackStackRecord.java:294)
at org.briarproject.briar.android.settings.SettingsActivity.showNextFragment(SettingsActivity.java:83)
at org.briarproject.briar.android.settings.SettingsActivity.onPreferenceStartFragment(SettingsActivity.java:72)
at androidx.preference.PreferenceFragmentCompat.onPreferenceTreeClick(PreferenceFragmentCompat.java:407)
at androidx.preference.Preference.performClick(Preference.java:1192)
at androidx.preference.Preference.performClick(Preference.java:1166)
at androidx.preference.Preference$1.onClick(Preference.java:181)
at android.view.View.performClick(View.java:4212)
at android.view.View$PerformClick.run(View.java:17476)
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:5400)
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:837)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:604)
at dalvik.system.NativeStart.main(Native Method)
```Android 1.4https://code.briarproject.org/briar/briar/-/issues/2210Syncing via removable drives fails when drive is removed too soon2021-11-02T14:07:11ZakwizgranSyncing via removable drives fails when drive is removed too soonA volunteer who was testing syncing via removable drives found that if they removed the removable drive from the sending device too soon, the file was empty (0 bytes) and the import failed with "Error importing data" on the receiving dev...A volunteer who was testing syncing via removable drives found that if they removed the removable drive from the sending device too soon, the file was empty (0 bytes) and the import failed with "Error importing data" on the receiving device.
We already knew this was possible, but I'm opening a ticket for it as it's been seen in the wild.
We may be able to improve how we handle this, for example by showing a more specific error message if the file is empty, or by adding a delay on the sender side before reporting that the write is complete, to allow more time for the data to be written to the drive.https://code.briarproject.org/briar/briar/-/issues/2177Possible storage management issue2021-11-04T12:54:56ZPanda CoderPossible storage management issueFor some reason Briar's user data takes more space with each contact added. It started with around 70 MB and now it's getting close to 500 MB after adding few (under 10) new contacts. Is it issue with storage management in Briar or expec...For some reason Briar's user data takes more space with each contact added. It started with around 70 MB and now it's getting close to 500 MB after adding few (under 10) new contacts. Is it issue with storage management in Briar or expected behavior in P2P messsenger?
Here are device informations but all of my contacts have very similar issue:
- AndroidApi: 30
- AndroidVersion: 11
- Brand: google
- Model: Pixel 4a
- Product: sunfishhttps://code.briarproject.org/briar/briar/-/issues/2160NPE when creating SettingsActivity2021-09-02T12:25:32ZakwizgranNPE when creating SettingsActivity* Android version: 11
* Phone model: Google Pixel 2 (walleye)
* Briar version: 1.3.6 debug (48292d2)
Stacktrace:
```
Unable to start activity ComponentInfo{org.briarproject.briar.android.debug/org.briarproject.briar.android.settings.Set...* Android version: 11
* Phone model: Google Pixel 2 (walleye)
* Briar version: 1.3.6 debug (48292d2)
Stacktrace:
```
Unable to start activity ComponentInfo{org.briarproject.briar.android.debug/org.briarproject.briar.android.settings.SettingsActivity}: java.lang.NullPointerException: Attempt to invoke interface method 'void androidx.appcompat.widget.DecorContentParent.setWindowCallback(android.view.Window$Callback)' on a null object reference
java.lang.RuntimeException: Unable to start activity ComponentInfo{org.briarproject.briar.android.debug/org.briarproject.briar.android.settings.SettingsActivity}: java.lang.NullPointerException: Attempt to invoke interface method 'void androidx.appcompat.widget.DecorContentParent.setWindowCallback(android.view.Window$Callback)' on a null object reference
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3449)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3601)
at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:85)
at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:135)
at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2066)
at android.os.Handler.dispatchMessage(Handler.java:106)
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)
Caused by: java.lang.NullPointerException: Attempt to invoke interface method 'void androidx.appcompat.widget.DecorContentParent.setWindowCallback(android.view.Window$Callback)' on a null object reference
at androidx.appcompat.app.AppCompatDelegateImpl.createSubDecor(AppCompatDelegateImpl.java:900)
at androidx.appcompat.app.AppCompatDelegateImpl.ensureSubDecor(AppCompatDelegateImpl.java:806)
at androidx.appcompat.app.AppCompatDelegateImpl.initWindowDecorActionBar(AppCompatDelegateImpl.java:547)
at androidx.appcompat.app.AppCompatDelegateImpl.getSupportActionBar(AppCompatDelegateImpl.java:534)
at androidx.appcompat.app.AppCompatActivity.getSupportActionBar(AppCompatActivity.java:139)
at org.briarproject.briar.android.settings.SettingsActivity.onCreate(SettingsActivity.java:37)
at android.app.Activity.performCreate(Activity.java:8000)
at android.app.Activity.performCreate(Activity.java:7984)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1309)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3422)
... 11 more
```
Edited log:
```
08-16 11:07:39.533 I/BaseActivity: Destroying SettingsActivity
08-16 11:07:39.549 I/BaseActivity: Destroying NavDrawerActivity
08-16 11:08:10.265 I/BaseActivity: Creating SettingsActivity
08-16 11:08:10.271 I/SettingsViewModel: Loading settings took 12 ms
```https://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.