briar issueshttps://code.briarproject.org/briar/briar/-/issues2022-02-28T15:52:29Zhttps://code.briarproject.org/briar/briar/-/issues/2097ActivityNotFoundException for OPEN_DOCUMENT intent2022-02-28T15:52:29ZakwizgranActivityNotFoundException for OPEN_DOCUMENT intent* Android version: 11
* Phone model: Pixel 4a (sunfish)
* Briar version: 1.3.5 (0040753)
* User feedback: "I tried to press the button to change profile picture."
Stacktrace:
```
No Activity found to handle Intent { act=android.intent.a...* Android version: 11
* Phone model: Pixel 4a (sunfish)
* Briar version: 1.3.5 (0040753)
* User feedback: "I tried to press the button to change profile picture."
Stacktrace:
```
No Activity found to handle Intent { act=android.intent.action.OPEN_DOCUMENT cat=[android.intent.category.OPENABLE] typ=image/* (has extras) }
android.content.ActivityNotFoundException: No Activity found to handle Intent { act=android.intent.action.OPEN_DOCUMENT cat=[android.intent.category.OPENABLE] typ=image
/* (has extras) }
at android.app.Instrumentation.checkStartActivityResult(Instrumentation.java:2067)
at android.app.Instrumentation.execStartActivity(Instrumentation.java:1727)
at android.app.Activity.startActivityForResult(Activity.java:5314)
at androidx.activity.ComponentActivity.startActivityForResult(ComponentActivity.java:574)
at androidx.core.app.ActivityCompat.startActivityForResult(ActivityCompat.java:234)
at androidx.activity.ComponentActivity$2.onLaunch(ComponentActivity.java:208)
at androidx.activity.result.ActivityResultRegistry$3.launch(ActivityResultRegistry.java:224)
at androidx.activity.result.ActivityResultLauncher.launch(ActivityResultLauncher.java:47)
at androidx.fragment.app.FragmentManager.launchStartActivityForResult(FragmentManager.java:3000)
at androidx.fragment.app.Fragment.startActivityForResult(Fragment.java:1424)
at androidx.fragment.app.Fragment.startActivityForResult(Fragment.java:1398)
at org.briarproject.briar.android.settings.SettingsFragment.lambda$onCreatePreferences$0(SettingsFragment.java:64)
at org.briarproject.briar.android.settings.SettingsFragment.lambda$onCreatePreferences$0$SettingsFragment(Unknown Source:0)
at org.briarproject.briar.android.settings.-$$Lambda$SettingsFragment$aLVt4dIN9PUOagzsIXcpqTymkBo.onPreferenceClick(Unknown Source:2)
at androidx.preference.Preference.performClick(Preference.java:1184)
at androidx.preference.Preference.performClick(Preference.java:1166)
at androidx.preference.Preference$1.onClick(Preference.java:181)
at android.view.View.performClick(View.java:7448)
at android.view.View.performClickInternal(View.java:7425)
at android.view.View.access$3600(View.java:810)
at android.view.View$PerformClick.run(View.java:28305)
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:7664)
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)
```Android 1.4Torsten GroteTorsten Grotehttps://code.briarproject.org/briar/briar/-/issues/2088Sharing Briar offline - Crash when wifi on device is OFF and 'Start sharing' ...2021-12-07T15:20:36ZIvanaSharing Briar offline - Crash when wifi on device is OFF and 'Start sharing' tapped on Briar screenSteps to reproduce:
1. Device: Samsung Mini I9195 (API19) - go to device settings and switch the wi-fi OFF
2. Go to Briar app > settings > Share Briar app offline
3. Tap Start Sharing button
Expected results:
1. As the wifi gets switc...Steps to reproduce:
1. Device: Samsung Mini I9195 (API19) - go to device settings and switch the wi-fi OFF
2. Go to Briar app > settings > Share Briar app offline
3. Tap Start Sharing button
Expected results:
1. As the wifi gets switched ON during this process, the expected would be for the briar app sharing to continue as normal
Actual results:
1. Briar app crashes. (Reproduced 3 times in a row)
Attached screenshot of device settings, movie of user actions on Briar and Android Studio logfile for the device during this process.
![device-2021-06-23-133045](/uploads/03642e88edf23c9f00e13969cc8e08d3/device-2021-06-23-133045.mp4)[crash_samsung_mini_23062021.txt](/uploads/f4e4ca1973fc75867ea1b65b7a533d5a/crash_samsung_mini_23062021.txt)![device-2021-06-23-133011](/uploads/05ff2fdb19bc1d0bcb052c1c4e3fc51b/device-2021-06-23-133011.png)
Crash report sent from the device as well.
Checking what happens in the same scenario for devices:
- Pixel 2 (API30) - user is given a message that the wifi needs to be on and then they are taken to the device settings to enable the wi-fi = OK
- Nokia 3.1 (API29) - as Pixel2 = OK
- Samsung A01 Core (API29) - as Pixel 2 = OK
- HTC One M9 (API24)Android 1.4SebastianSebastianhttps://code.briarproject.org/briar/briar/-/issues/2067Add version/build info to settings dialog2022-07-11T15:13:46ZNorbert 80Add version/build info to settings dialogI cannot find a version string somewhere in the Briar app. I suggest to add build info at the bottom of the settings screen.I cannot find a version string somewhere in the Briar app. I suggest to add build info at the bottom of the settings screen.Android 1.4https://code.briarproject.org/briar/briar/-/issues/2059NoSuchGroupException toast is shown when private group is removed2021-06-14T14:58:58ZakwizgranNoSuchGroupException toast is shown when private group is removed* Android version: 4.4.2
* Phone model: LGE LG-D150 (w35_global_com)
* Briar version: 1.3.4 (76b7e6f)
* User feedback: "NoSuchGroupException"
Log:
```
05-23 22:32:59.452 I/GroupListViewModel: Private group removed
05-23 22:32:59.453 I/T...* Android version: 4.4.2
* Phone model: LGE LG-D150 (w35_global_com)
* Briar version: 1.3.4 (76b7e6f)
* User feedback: "NoSuchGroupException"
Log:
```
05-23 22:32:59.452 I/GroupListViewModel: Private group removed
05-23 22:32:59.453 I/ThreadListViewModel: Group removed
05-23 22:32:59.456 I/BaseActivity: Pausing GroupActivity
05-23 22:32:59.467 I/BaseActivity: Starting NavDrawerActivity
05-23 22:32:59.467 I/BaseActivity: Resuming NavDrawerActivity
05-23 22:32:59.950 I/BaseActivity: Stopping GroupActivity
05-23 22:32:59.954 I/BaseActivity: Destroying GroupActivity
05-23 22:32:59.967 W/DbViewModel: org.briarproject.bramble.api.db.NoSuchGroupException
org.briarproject.bramble.api.db.NoSuchGroupException
at org.briarproject.bramble.db.DatabaseComponentImpl.mergeGroupMetadata(DatabaseComponentImpl.java:784)
at org.briarproject.bramble.client.ClientHelperImpl.mergeGroupMetadata(ClientHelperImpl.java:224)
at org.briarproject.bramble.client.ClientHelperImpl.lambda$mergeGroupMetadata$7(ClientHelperImpl.java:218)
at org.briarproject.bramble.client.ClientHelperImpl.lambda$mergeGroupMetadata$7$ClientHelperImpl(ClientHelperImpl.java)
at org.briarproject.bramble.client.-$$Lambda$ClientHelperImpl$7us-EF4vPLR_8c0LCNvGmtb6d4I.run(lambda)
at org.briarproject.bramble.db.DatabaseComponentImpl.transaction(DatabaseComponentImpl.java:200)
at org.briarproject.bramble.client.ClientHelperImpl.mergeGroupMetadata(ClientHelperImpl.java:218)
at org.briarproject.briar.client.MessageTrackerImpl.storeMessageId(MessageTrackerImpl.java:92)
at org.briarproject.briar.android.threaded.ThreadListViewModel.lambda$storeMessageId$1(ThreadListViewModel.java:222)
at org.briarproject.briar.android.threaded.ThreadListViewModel.lambda$storeMessageId$1$ThreadListViewModel(ThreadListViewModel.java)
at org.briarproject.briar.android.threaded.-$$Lambda$ThreadListViewModel$8pSkGFRn7z9NtDqesywkHNLVqgk.run(lambda)
at org.briarproject.briar.android.viewmodel.DbViewModel.lambda$runOnDbThread$0(DbViewModel.java:77)
at org.briarproject.briar.android.viewmodel.DbViewModel.lambda$runOnDbThread$0$DbViewModel(DbViewModel.java)
at org.briarproject.briar.android.viewmodel.-$$Lambda$DbViewModel$WFnJ2C0vmjF_vFVS_futFODEXKA.run(lambda)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
```
What seems to be happening is that ThreadListViewModel is asynchronously storing the list position, and it gets a NoSuchGroupException because the group has recently been removed. The exception is harmless and should probably be logged rather than shown in the UI.Android 1.3Torsten GroteTorsten Grotehttps://code.briarproject.org/briar/briar/-/issues/2056IllegalArgumentException: pointerIndex out of range2021-08-27T11:46:15ZakwizgranIllegalArgumentException: pointerIndex out of range* Android version: 11
* Phone model: Redmi Note 5
* Briar version: 1.3.4 (76b7e6f)
* User feedback: "Sent a picture, then click on it to show it."
Log snippet:
```
05-28 06:43:28.401 I/BaseActivity: Pausing ConversationActivity
05-28 06...* Android version: 11
* Phone model: Redmi Note 5
* Briar version: 1.3.4 (76b7e6f)
* User feedback: "Sent a picture, then click on it to show it."
Log snippet:
```
05-28 06:43:28.401 I/BaseActivity: Pausing ConversationActivity
05-28 06:43:28.416 I/BaseActivity: Creating ImageActivity
05-28 06:43:28.441 I/BaseActivity: Starting ImageActivity
05-28 06:43:28.444 I/BaseActivity: Resuming ImageActivity
05-28 06:43:28.894 I/BaseActivity: Stopping ConversationActivity
```
Stacktrace:
```
java.lang.IllegalArgumentException: pointerIndex out of range
at android.view.MotionEvent.nativeGetAxisValue(Native Method)
at android.view.MotionEvent.getX(MotionEvent.java:2401)
at androidx.viewpager.widget.ViewPager.onInterceptTouchEvent(ViewPager.java:2072)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2664)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3118)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2799)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3118)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2799)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3118)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2799)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3118)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2799)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3118)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2799)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3118)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2799)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3118)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2799)
at com.android.internal.policy.DecorView.superDispatchTouchEvent(DecorView.java:488)
at com.android.internal.policy.PhoneWindow.superDispatchTouchEvent(PhoneWindow.java:1873)
at android.app.Activity.dispatchTouchEvent(Activity.java:4125)
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:446)
at android.view.View.dispatchPointerEvent(View.java:14568)
at android.view.ViewRootImpl$ViewPostImeInputStage.processPointerEvent(ViewRootImpl.java:6022)
at android.view.ViewRootImpl$ViewPostImeInputStage.onProcess(ViewRootImpl.java:5825)
at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:5316)
at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:5373)
at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:5339)
at android.view.ViewRootImpl$AsyncInputStage.forward(ViewRootImpl.java:5491)
at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:5347)
at android.view.ViewRootImpl$AsyncInputStage.apply(ViewRootImpl.java:5548)
at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:5320)
at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:5373)
at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:5339)
at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:5347)
at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:5320)
at android.view.ViewRootImpl.deliverInputEvent(ViewRootImpl.java:8086)
at android.view.ViewRootImpl.doProcessInputEvents(ViewRootImpl.java:8037)
at android.view.ViewRootImpl.enqueueInputEvent(ViewRootImpl.java:7998)
at android.view.ViewRootImpl$WindowInputEventReceiver.onInputEvent(ViewRootImpl.java:8209)
at android.view.InputEventReceiver.dispatchInputEvent(InputEventReceiver.java:220)
at android.os.MessageQueue.nativePollOnce(Native Method)
at android.os.MessageQueue.next(MessageQueue.java:335)
at android.os.Looper.loop(Looper.java:183)
at android.app.ActivityThread.main(ActivityThread.java:7660)
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)
```
[Looks like](https://stackoverflow.com/a/13000343) this is a [very longstanding bug](https://issuetracker.google.com/issues/36931456) in the support library/AndroidX that was fixed recently. We may be able to fix the issue by upgrading the ViewPager library. Alternatively, various people on StackOverflow suggest workarounds that wrap the ViewPager to catch the exception.Android 1.3IvanaIvanahttps://code.briarproject.org/briar/briar/-/issues/1982RuntimeException: getParameters failed (empty parameters)2021-05-05T16:12:24ZakwizgranRuntimeException: getParameters failed (empty parameters)* Android version: 7.1
* Phone model: Google Nexus 7 (nakasig)
* Briar version: 1.2.16 (8a534b4)
Stacktrace:
```
getParameters failed (empty parameters)
java.lang.RuntimeException: getParameters failed (empty parameters)
at andr...* Android version: 7.1
* Phone model: Google Nexus 7 (nakasig)
* Briar version: 1.2.16 (8a534b4)
Stacktrace:
```
getParameters failed (empty parameters)
java.lang.RuntimeException: getParameters failed (empty parameters)
at android.hardware.Camera.native_getParameters(Native Method)
at android.hardware.Camera.getParameters(Camera.java:1896)
at org.briarproject.briar.android.keyagreement.CameraView.start(CameraView.java:130)
at org.briarproject.briar.android.keyagreement.KeyAgreementFragment.onStart(KeyAgreementFragment.java:149)
at androidx.fragment.app.Fragment.performStart(Fragment.java:2730)
at androidx.fragment.app.FragmentStateManager.start(FragmentStateManager.java:365)
at androidx.fragment.app.FragmentManager.moveToState(FragmentManager.java:1194)
at androidx.fragment.app.FragmentManager.moveToState(FragmentManager.java:1356)
at androidx.fragment.app.FragmentManager.moveFragmentToExpectedState(FragmentManager.java:1434)
at androidx.fragment.app.FragmentManager.moveToState(FragmentManager.java:1497)
at androidx.fragment.app.BackStackRecord.executeOps(BackStackRecord.java:447)
at androidx.fragment.app.FragmentManager.executeOps(FragmentManager.java:2169)
at androidx.fragment.app.FragmentManager.executeOpsTogether(FragmentManager.java:1992)
at androidx.fragment.app.FragmentManager.removeRedundantOperationsAndExecute(FragmentManager.java:1947)
at androidx.fragment.app.FragmentManager.execPendingActions(FragmentManager.java:1849)
at androidx.fragment.app.FragmentManager$4.run(FragmentManager.java:413)
at android.os.Handler.handleCallback(Handler.java:751)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:154)
at android.app.ActivityThread.main(ActivityThread.java:6148)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:888)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:778)
```
This is very similar to #998, but getParameters() is being called from a different place where apparently we forgot to catch the exception.
Also similar to #1523, but here the call is synchronous so catching the exception is an option.Android 1.2Torsten GroteTorsten Grotehttps://code.briarproject.org/briar/briar/-/issues/1981NPE from MaterialTapTargetPrompt when setting typeface2021-08-27T11:45:48ZakwizgranNPE from MaterialTapTargetPrompt when setting typeface* Android version: 10
* Phone model: Xiaomi Redmi Note 7 Pro (violet)
* Briar version: 1.2.16 (8a534b4)
Stacktrace:
```
Attempt to read from field 'int android.graphics.Typeface.mStyle' on a null object reference
java.lang.NullPointerEx...* Android version: 10
* Phone model: Xiaomi Redmi Note 7 Pro (violet)
* Briar version: 1.2.16 (8a534b4)
Stacktrace:
```
Attempt to read from field 'int android.graphics.Typeface.mStyle' on a null object reference
java.lang.NullPointerException: Attempt to read from field 'int android.graphics.Typeface.mStyle' on a null object reference
at android.graphics.Typeface.create(Typeface.java:849)
at uk.co.samuelwall.materialtaptargetprompt.extras.PromptUtils.setTypefaceFromAttrs(PromptUtils.java:127)
at uk.co.samuelwall.materialtaptargetprompt.extras.PromptOptions.load(PromptOptions.java:248)
at uk.co.samuelwall.materialtaptargetprompt.MaterialTapTargetPrompt$Builder.<init>(MaterialTapTargetPrompt.java:1139)
at uk.co.samuelwall.materialtaptargetprompt.MaterialTapTargetPrompt$Builder.<init>(MaterialTapTargetPrompt.java:1122)
at org.briarproject.briar.android.navdrawer.NavDrawerActivity.showTransportsOnboarding(NavDrawerActivity.java:489)
at org.briarproject.briar.android.navdrawer.NavDrawerActivity.lambda$null$2(NavDrawerActivity.java:181)
at org.briarproject.briar.android.navdrawer.NavDrawerActivity.lambda$null$2$NavDrawerActivity(Unknown Source:0)
at org.briarproject.briar.android.navdrawer.-$$Lambda$NavDrawerActivity$xWqZhXc-2hRSJQvQHp-zwWTmweU.onChanged(Unknown Source:6)
at org.briarproject.briar.android.util.UiUtils$3.onChanged(UiUtils.java:400)
at androidx.lifecycle.LiveData.considerNotify(LiveData.java:131)
at androidx.lifecycle.LiveData.dispatchingValue(LiveData.java:144)
at androidx.lifecycle.LiveData$ObserverWrapper.activeStateChanged(LiveData.java:443)
at androidx.lifecycle.LiveData$LifecycleBoundObserver.onStateChanged(LiveData.java:395)
at androidx.lifecycle.LifecycleRegistry$ObserverWithState.dispatchEvent(LifecycleRegistry.java:361)
at androidx.lifecycle.LifecycleRegistry.addObserver(LifecycleRegistry.java:188)
at androidx.lifecycle.LiveData.observe(LiveData.java:203)
at org.briarproject.briar.android.util.UiUtils.observeOnce(UiUtils.java:397)
at org.briarproject.briar.android.navdrawer.NavDrawerActivity.lambda$onCreate$3(NavDrawerActivity.java:180)
at org.briarproject.briar.android.navdrawer.NavDrawerActivity.lambda$onCreate$3$NavDrawerActivity(Unknown Source:0)
at org.briarproject.briar.android.navdrawer.-$$Lambda$NavDrawerActivity$LIifbSpjf5QmEgmsWY6XA8WUmPg.onChanged(Unknown Source:4)
at org.briarproject.briar.android.util.UiUtils$3.onChanged(UiUtils.java:400)
at androidx.lifecycle.LiveData.considerNotify(LiveData.java:131)
at androidx.lifecycle.LiveData.dispatchingValue(LiveData.java:149)
at androidx.lifecycle.LiveData.setValue(LiveData.java:307)
at androidx.lifecycle.MutableLiveData.setValue(MutableLiveData.java:50)
at androidx.lifecycle.LiveData$1.run(LiveData.java:91)
at android.os.Handler.handleCallback(Handler.java:883)
at android.os.Handler.dispatchMessage(Handler.java:100)
at android.os.Looper.loop(Looper.java:224)
at android.app.ActivityThread.main(ActivityThread.java:7592)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:539)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:950)
```
Log snippet:
```
03-16 17:09:44.556 I/TorPlugin: Country code: IN
```
Perhaps country code IN could mean that the system typeface is different than on our test devices?Android 1.3https://code.briarproject.org/briar/briar/-/issues/1980SecurityException in ConnectivityManager#getNetworkCapabilities()2022-04-20T14:51:58ZakwizgranSecurityException in ConnectivityManager#getNetworkCapabilities()* Android version: 11
* Phone model: Android Pixel 3 (aosp_blueline)
* Briar version: 1.2.16 (8a534b4)
Stacktrace:
```
Package android does not belong to 10144
java.lang.SecurityException: Package android does not belong to 10144
...* Android version: 11
* Phone model: Android Pixel 3 (aosp_blueline)
* Briar version: 1.2.16 (8a534b4)
Stacktrace:
```
Package android does not belong to 10144
java.lang.SecurityException: Package android does not belong to 10144
at android.os.Parcel.createExceptionOrNull(Parcel.java:2373)
at android.os.Parcel.createException(Parcel.java:2357)
at android.os.Parcel.readException(Parcel.java:2340)
at android.os.Parcel.readException(Parcel.java:2282)
at android.net.IConnectivityManager$Stub$Proxy.getNetworkCapabilities(IConnectivityManager.java:2456)
at android.net.ConnectivityManager.getNetworkCapabilities(ConnectivityManager.java:1385)
at org.briarproject.bramble.plugin.tcp.AndroidLanTcpPlugin.getSocketFactory(AndroidLanTcpPlugin.java:241)
at org.briarproject.bramble.plugin.tcp.AndroidLanTcpPlugin.lambda$updateConnectionStatus$0(AndroidLanTcpPlugin.java:283)
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:923)
Caused by: android.os.RemoteException: Remote stack trace:
at android.app.AppOpsManager.checkPackage(AppOpsManager.java:7739)
at com.android.server.ConnectivityService.getNetworkCapabilities(ConnectivityService.java:1668)
at android.net.IConnectivityManager$Stub.onTransact(IConnectivityManager.java:978)
at android.os.Binder.execTransactInternal(Binder.java:1154)
at android.os.Binder.execTransact(Binder.java:1123)
```
Edited log:
```
03-06 01:00:56.967 I/BriarApplicationImpl: Created
03-06 01:00:56.996 I/AccountManagerImpl: Found database key in primary file
03-06 01:05:05.194 I/BaseActivity: Creating SplashScreenActivity
03-06 01:05:05.221 I/BaseActivity: Starting SplashScreenActivity
03-06 01:05:05.226 I/BaseActivity: Resuming SplashScreenActivity
03-06 01:05:05.748 I/BaseActivity: Pausing SplashScreenActivity
03-06 01:05:05.758 I/BaseActivity: Creating NavDrawerActivity
03-06 01:05:05.844 I/BaseActivity: Starting NavDrawerActivity
03-06 01:05:05.846 I/BaseActivity: Resuming NavDrawerActivity
03-06 01:05:05.846 I/BriarActivity: Not signed in, launching StartupActivity
03-06 01:05:05.853 I/BaseActivity: Pausing NavDrawerActivity
03-06 01:05:05.858 I/BaseActivity: Creating StartupActivity
03-06 01:05:05.870 I/AccountManagerImpl: Found database key in primary file
03-06 01:05:05.872 I/BaseActivity: Starting StartupActivity
03-06 01:05:05.914 I/BaseActivity: Resuming StartupActivity
03-06 01:05:06.031 I/BaseActivity: Stopping NavDrawerActivity
03-06 01:05:06.570 I/BaseActivity: Stopping SplashScreenActivity
03-06 01:05:06.571 I/BaseActivity: Destroying SplashScreenActivity
03-06 01:05:12.041 I/AccountManagerImpl: Found database key in primary file
03-06 01:05:13.075 I/AndroidKeyStrengthener: Loaded key from keystore
03-06 01:05:13.420 I/BriarService: Created
03-06 01:05:13.422 I/RenewableWakeLock: Acquiring wake lock org.briarproject.briar.android
03-06 01:05:13.431 I/LifecycleManagerImpl: Opening database
03-06 01:05:13.443 I/H2Database: Reopening DB: true
03-06 01:05:13.743 I/JdbcDatabase: 15994116646 ms since last compaction
03-06 01:05:13.945 I/IdentityManagerImpl: Identity loaded
03-06 01:05:13.955 I/LifecycleManagerImpl: Starting services
03-06 01:05:13.958 I/AndroidNetworkManager: Received broadcast android.net.conn.CONNECTIVITY_CHANGE
03-06 01:05:13.967 I/PluginManagerImpl: Starting simplex plugins
03-06 01:05:13.967 I/PluginManagerImpl: Starting duplex plugins
03-06 01:05:13.971 I/PluginManagerImpl: org.briarproject.bramble.bluetooth changed from state STARTING_STOPPING to DISABLED
03-06 01:05:13.971 I/PluginViewModel: TransportStateEvent: org.briarproject.bramble.bluetooth is DISABLED
03-06 01:05:13.976 I/AndroidTorPlugin: Deleted Tor binary
03-06 01:05:13.978 I/AndroidTorPlugin: Deleted obfs4 binary
03-06 01:05:13.989 I/BluetoothPlugin: Local address null
03-06 01:05:14.009 I/PluginManagerImpl: org.briarproject.bramble.lan changed from state STARTING_STOPPING to INACTIVE
03-06 01:05:14.009 I/PluginViewModel: TransportStateEvent: org.briarproject.bramble.lan is INACTIVE
03-06 01:05:14.016 I/AndroidLanTcpPlugin: Connected to wifi
```
Looks like this phone's running an AOSP build. I won't add this to the milestone for now, unless/until we get further reports.Android 1.4akwizgranakwizgranhttps://code.briarproject.org/briar/briar/-/issues/1979Crash when showing feedback details as feedback is being sent2021-05-05T16:11:10ZakwizgranCrash when showing feedback details as feedback is being sent* Android version: 11
* Phone model: Google Pixel 4a (sunfish)
* Briar version: 1.2.13 (5fdc7e7)
* User feedback: "I was about to send feedback and I selected include more data and send, while it was loading I pressed on 'show' to see th...* Android version: 11
* Phone model: Google Pixel 4a (sunfish)
* Briar version: 1.2.13 (5fdc7e7)
* User feedback: "I was about to send feedback and I selected include more data and send, while it was loading I pressed on 'show' to see the logs that will be sent, then it caused the crash prompt."
Stacktrace:
```
String resource ID #0x0
android.content.res.Resources$NotFoundException: String resource ID #0x0
at android.content.res.Resources.getText(Resources.java:444)
at android.widget.TextView.setText(TextView.java:6429)
at org.briarproject.briar.android.reporting.ReportDataAdapter$ReportDataViewHolder.bind(ReportDataAdapter.java:62)
at org.briarproject.briar.android.reporting.ReportDataAdapter.onBindViewHolder(ReportDataAdapter.java:38)
at org.briarproject.briar.android.reporting.ReportDataAdapter.onBindViewHolder(ReportDataAdapter.java:18)
at androidx.recyclerview.widget.RecyclerView$Adapter.onBindViewHolder(RecyclerView.java:7065)
at androidx.recyclerview.widget.RecyclerView$Adapter.bindViewHolder(RecyclerView.java:7107)
at androidx.recyclerview.widget.RecyclerView$Recycler.tryBindViewHolderByDeadline(RecyclerView.java:6012)
at androidx.recyclerview.widget.RecyclerView$Recycler.tryGetViewHolderForPositionByDeadline(RecyclerView.java:6279)
at androidx.recyclerview.widget.RecyclerView$Recycler.getViewForPosition(RecyclerView.java:6118)
at androidx.recyclerview.widget.RecyclerView$Recycler.getViewForPosition(RecyclerView.java:6114)
at androidx.recyclerview.widget.LinearLayoutManager$LayoutState.next(LinearLayoutManager.java:2303)
at androidx.recyclerview.widget.LinearLayoutManager.layoutChunk(LinearLayoutManager.java:1627)
at androidx.recyclerview.widget.LinearLayoutManager.fill(LinearLayoutManager.java:1587)
at androidx.recyclerview.widget.LinearLayoutManager.onLayoutChildren(LinearLayoutManager.java:665)
at androidx.recyclerview.widget.RecyclerView.dispatchLayoutStep2(RecyclerView.java:4134)
at androidx.recyclerview.widget.RecyclerView.onMeasure(RecyclerView.java:3540)
at android.view.View.measure(View.java:25466)
at androidx.constraintlayout.widget.ConstraintLayout$Measurer.measure(ConstraintLayout.java:792)
at androidx.constraintlayout.solver.widgets.analyzer.BasicMeasure.measure(BasicMeasure.java:480)
at androidx.constraintlayout.solver.widgets.analyzer.BasicMeasure.measureChildren(BasicMeasure.java:134)
at androidx.constraintlayout.solver.widgets.analyzer.BasicMeasure.solverMeasure(BasicMeasure.java:277)
at androidx.constraintlayout.solver.widgets.ConstraintWidgetContainer.measure(ConstraintWidgetContainer.java:119)
at androidx.constraintlayout.widget.ConstraintLayout.resolveSystem(ConstraintLayout.java:1578)
at androidx.constraintlayout.widget.ConstraintLayout.onMeasure(ConstraintLayout.java:1690)
at android.view.View.measure(View.java:25466)
at androidx.core.widget.NestedScrollView.measureChildWithMargins(NestedScrollView.java:1599)
at android.widget.FrameLayout.onMeasure(FrameLayout.java:194)
at androidx.core.widget.NestedScrollView.onMeasure(NestedScrollView.java:585)
at android.view.View.measure(View.java:25466)
at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6957)
at android.widget.FrameLayout.onMeasure(FrameLayout.java:194)
at android.view.View.measure(View.java:25466)
at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6957)
at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1552)
at android.widget.LinearLayout.measureVertical(LinearLayout.java:842)
at android.widget.LinearLayout.onMeasure(LinearLayout.java:721)
at android.view.View.measure(View.java:25466)
at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6957)
at android.widget.FrameLayout.onMeasure(FrameLayout.java:194)
at android.view.View.measure(View.java:25466)
at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6957)
at android.widget.FrameLayout.onMeasure(FrameLayout.java:194)
at androidx.appcompat.widget.ContentFrameLayout.onMeasure(ContentFrameLayout.java:146)
at android.view.View.measure(View.java:25466)
at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6957)
at android.widget.FrameLayout.onMeasure(FrameLayout.java:194)
at android.view.View.measure(View.java:25466)
at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6957)
at android.widget.FrameLayout.onMeasure(FrameLayout.java:194)
at android.view.View.measure(View.java:25466)
at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6957)
at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1552)
at android.widget.LinearLayout.measureVertical(LinearLayout.java:842)
at android.widget.LinearLayout.onMeasure(LinearLayout.java:721)
at android.view.View.measure(View.java:25466)
at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6957)
at android.widget.FrameLayout.onMeasure(FrameLayout.java:194)
at com.android.internal.policy.DecorView.onMeasure(DecorView.java:747)
at android.view.View.measure(View.java:25466)
at android.view.ViewRootImpl.performMeasure(ViewRootImpl.java:3402)
at android.view.ViewRootImpl.measureHierarchy(ViewRootImpl.java:2246)
at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:2504)
at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1948)
at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:8177)
at android.view.Choreographer$CallbackRecord.run(Choreographer.java:972)
at android.view.Choreographer.doCallbacks(Choreographer.java:796)
at android.view.Choreographer.doFrame(Choreographer.java:731)
at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:957)
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:7660)
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)
```
Log not available due to #1917.Android 1.2IvanaIvanahttps://code.briarproject.org/briar/briar/-/issues/1926Crash after account creation on Samsung Ultra devices2022-02-28T13:48:05ZakwizgranCrash after account creation on Samsung Ultra devicesThree users reported via Google Play that the app crashes at startup on their Samsung devices (Galaxy Note20 Ultra 5G, Galaxy S21 Ultra 5G).
One of the users reported that the app crashes every time after tapping "create account". The u...Three users reported via Google Play that the app crashes at startup on their Samsung devices (Galaxy Note20 Ultra 5G, Galaxy S21 Ultra 5G).
One of the users reported that the app crashes every time after tapping "create account". The user sent a partial crash report by email, since the app didn't reach the point where the report could be sent via Tor.
Stacktrace:
```
Failed to allocate a 1040 byte allocation with 115624 free bytes and 112KB until OOM, target footprint 268435456, growth limit 268435456; failed due to fragmentation (largest possible contiguous allocation 97255424 bytes)
java.lang.OutOfMemoryError: Failed to allocate a 1040 byte allocation with 115624 free bytes and 112KB until OOM, target footprint 268435456, growth limit 268435456; failed due to fragmentation (largest possible contiguous allocation 97255424 bytes)
at org.spongycastle.util.Arrays.clone(Arrays.java:671)
at org.spongycastle.crypto.generators.SCrypt.SMix(SCrypt.java:126)
at org.spongycastle.crypto.generators.SCrypt.MFcrypt(SCrypt.java:87)
at org.spongycastle.crypto.generators.SCrypt.generate(SCrypt.java:66)
at org.briarproject.bramble.crypto.ScryptKdf.measureDuration(ScryptKdf.java:48)
at org.briarproject.bramble.crypto.ScryptKdf.chooseCostParameter(ScryptKdf.java:38)
at org.briarproject.bramble.crypto.CryptoComponentImpl.encryptWithPassword(CryptoComponentImpl.java:328)
at org.briarproject.bramble.account.AccountManagerImpl.encryptAndStoreDatabaseKey(AccountManagerImpl.java:182)
at org.briarproject.bramble.account.AccountManagerImpl.createAccount(AccountManagerImpl.java:173)
at org.briarproject.briar.android.account.SetupControllerImpl.lambda$createAccount$0(SetupControllerImpl.java:111)
at org.briarproject.briar.android.account.SetupControllerImpl.lambda$createAccount$0$SetupControllerImpl(Unknown Source:0)
at org.briarproject.briar.android.account.-$$Lambda$SetupControllerImpl$d4VGO9XJWxzmTk5cXfL8og-qX7I.run(Unknown Source:8)
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:923)
```
Memory info:
```
SystemMemoryFree: 4696301568
SystemMemoryThreshold: 226492416
SystemMemoryTotal: 11047866368
VirtualMachineMemoryAllocated: 268435456
VirtualMachineMemoryFree: 249255432
VirtualMachineMemoryMaximum: 268435456
```
The issue appears to be that scrypt is exhausting the available memory while trying to choose a cost parameter. The phone has 12 GB of memory and a 256 MB heap.
We might be able to avoid the issue by capping the scrypt cost parameter so that scrypt's expected memory usage isn't more than half of the max heap size.Android 1.2akwizgranakwizgranhttps://code.briarproject.org/briar/briar/-/issues/1910IllegalStateException when adding contact remotely2021-02-17T17:19:12ZakwizgranIllegalStateException when adding contact remotely* Android version: 8.0.0
* Phone model: Samsung SM-A520F (a5y17ltexx)
* Briar version: 1.2.12 (54893d2)
Stacktrace:
```
java.lang.IllegalStateException
at org.briarproject.briar.android.contact.add.remote.AddContactViewModel.add...* Android version: 8.0.0
* Phone model: Samsung SM-A520F (a5y17ltexx)
* Briar version: 1.2.12 (54893d2)
Stacktrace:
```
java.lang.IllegalStateException
at org.briarproject.briar.android.contact.add.remote.AddContactViewModel.addContact(AddContactViewModel.java:104)
at org.briarproject.briar.android.contact.add.remote.NicknameFragment.onAddButtonClicked(NicknameFragment.java:127)
at org.briarproject.briar.android.contact.add.remote.NicknameFragment.lambda$onCreateView$0$NicknameFragment(NicknameFragment.java:88)
at org.briarproject.briar.android.contact.add.remote.-$$Lambda$NicknameFragment$DP4SKMB9Kkf7jxUQrVMBWLNcvuI.onClick(Unknown Source:2)
at android.view.View.performClick(View.java:6897)
at android.widget.TextView.performClick(TextView.java:12727)
at android.view.View$PerformClick.run(View.java:26101)
at android.os.Handler.handleCallback(Handler.java:789)
at android.os.Handler.dispatchMessage(Handler.java:98)
at android.os.Looper.loop(Looper.java:164)
at android.app.ActivityThread.main(ActivityThread.java:6944)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:327)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1374)
```
Edited log:
```
01-14 16:53:22.538 I/AndroidNetworkManager: Received broadcast android.intent.action.SCREEN_ON
01-14 16:53:33.404 I/BaseActivity: Creating NavDrawerActivity
01-14 16:53:33.504 I/BaseActivity: Starting NavDrawerActivity
01-14 16:53:33.512 I/BaseActivity: Resuming NavDrawerActivity
01-14 16:53:36.039 I/BaseActivity: Pausing NavDrawerActivity
01-14 16:53:36.059 I/BaseActivity: Creating AddContactActivity
01-14 16:53:36.114 I/BaseActivity: Starting AddContactActivity
01-14 16:53:36.779 I/BaseActivity: Resuming AddContactActivity
01-14 16:53:37.277 I/BaseActivity: Stopping NavDrawerActivity
01-14 16:53:37.298 I/BaseActivity: Destroying NavDrawerActivity
01-14 16:53:49.623 I/BaseActivity: Pausing AddContactActivity
01-14 16:53:49.643 I/BaseActivity: Stopping AddContactActivity
01-14 16:53:49.667 I/BaseActivity: Destroying AddContactActivity
01-14 16:53:53.323 I/BaseActivity: Creating AddContactActivity
01-14 16:53:53.399 I/BaseActivity: Starting AddContactActivity
01-14 16:53:53.405 I/BaseActivity: Resuming AddContactActivity
```Android 1.2IvanaIvanahttps://code.briarproject.org/briar/briar/-/issues/1904IllegalStateException when backing out of blog feed2021-02-17T17:19:39ZakwizgranIllegalStateException when backing out of blog feed* Android version: 4.4.4
* Phone model: Sony Xperia X
* Briar version: 1.2.7 (eb562f8)
* User feedback: "I've pressed back button on Blogs page."
Stacktrace:
```
java.lang.IllegalStateException: Can not perform this action after onSaveI...* Android version: 4.4.4
* Phone model: Sony Xperia X
* Briar version: 1.2.7 (eb562f8)
* User feedback: "I've pressed back button on Blogs page."
Stacktrace:
```
java.lang.IllegalStateException: Can not perform this action after onSaveInstanceState
at androidx.fragment.app.FragmentManagerImpl.checkStateLoss(FragmentManagerImpl.java:1536)
at androidx.fragment.app.FragmentManagerImpl.enqueueAction(FragmentManagerImpl.java:1558)
at androidx.fragment.app.BackStackRecord.commitInternal(BackStackRecord.java:317)
at androidx.fragment.app.BackStackRecord.commit(BackStackRecord.java:282)
at org.briarproject.briar.android.navdrawer.NavDrawerActivity.startFragment(NavDrawerActivity.java:331)
at org.briarproject.briar.android.navdrawer.NavDrawerActivity.startFragment(NavDrawerActivity.java:315)
at org.briarproject.briar.android.navdrawer.NavDrawerActivity.startFragment(NavDrawerActivity.java:310)
at org.briarproject.briar.android.navdrawer.NavDrawerActivity.onBackPressed(NavDrawerActivity.java:277)
at android.app.Activity.onKeyUp(Activity.java:2193)
at android.view.KeyEvent.dispatch(KeyEvent.java:2664)
at androidx.core.view.KeyEventDispatcher.activitySuperDispatchKeyEventPre28(KeyEventDispatcher.java:137)
at androidx.core.view.KeyEventDispatcher.dispatchKeyEvent(KeyEventDispatcher.java:87)
at androidx.core.app.ComponentActivity.dispatchKeyEvent(ComponentActivity.java:133)
at androidx.appcompat.app.AppCompatActivity.dispatchKeyEvent(AppCompatActivity.java:558)
at androidx.appcompat.view.WindowCallbackWrapper.dispatchKeyEvent(WindowCallbackWrapper.java:59)
at androidx.appcompat.app.AppCompatDelegateImpl$AppCompatWindowCallback.dispatchKeyEvent(AppCompatDelegateImpl.java:2814)
at androidx.appcompat.view.WindowCallbackWrapper.dispatchKeyEvent(WindowCallbackWrapper.java:59)
at com.android.internal.policy.impl.PhoneWindow$DecorView.dispatchKeyEvent(PhoneWindow.java:1962)
at android.view.ViewRootImpl$ViewPostImeInputStage.processKeyEvent(ViewRootImpl.java:3845)
at android.view.ViewRootImpl$ViewPostImeInputStage.onProcess(ViewRootImpl.java:3819)
at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:3392)
at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:3442)
at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:3411)
at android.view.ViewRootImpl$AsyncInputStage.forward(ViewRootImpl.java:3518)
at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:3419)
at android.view.ViewRootImpl$AsyncInputStage.apply(ViewRootImpl.java:3575)
at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:3392)
at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:3442)
at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:3411)
at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:3419)
at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:3392)
at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:3442)
at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:3411)
at android.view.ViewRootImpl$AsyncInputStage.forward(ViewRootImpl.java:3551)
at android.view.ViewRootImpl$ImeInputStage.onFinishedInputEvent(ViewRootImpl.java:3711)
at android.view.inputmethod.InputMethodManager$PendingEvent.run(InputMethodManager.java:2043)
at android.view.inputmethod.InputMethodManager.invokeFinishedInputEventCallback(InputMethodManager.java:1737)
at android.view.inputmethod.InputMethodManager.finishedInputEvent(InputMethodManager.java:1728)
at android.view.inputmethod.InputMethodManager$ImeInputEventSender.onInputEventFinished(InputMethodManager.java:2020)
at android.view.InputEventSender.dispatchInputEventFinished(InputEventSender.java:141)
at android.os.MessageQueue.nativePollOnce(Native Method)
at android.os.MessageQueue.next(MessageQueue.java:138)
at android.os.Looper.loop(Looper.java:123)
at android.app.ActivityThread.main(ActivityThread.java:5001)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:515)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:797)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:613)
at dalvik.system.NativeStart.main(Native Method)
```
Last lines of log:
```
10-18 21:06:06.210 I/BaseActivity: Starting NavDrawerActivity
10-18 21:06:06.247 I/BaseActivity: Stopping NavDrawerActivity
10-18 21:06:06.416 I/BaseActivity: Starting NavDrawerActivity
10-18 21:06:06.431 I/BaseActivity: Stopping NavDrawerActivity
```
This looks similar to #1423.Android 1.2IvanaIvanahttps://code.briarproject.org/briar/briar/-/issues/1899NPE in BluetoothSocket#connect()2021-03-11T18:11:31ZakwizgranNPE in BluetoothSocket#connect()* Android version: 9
* Phone model: Huawei ANE-LX1
* Briar version: 1.2.9 (9d96ce6)
* User feedback: "Unlocked the phone and Briar showed me this."
Stacktrace:
```
java.lang.NullPointerException: Attempt to read from field 'java.lang.St...* Android version: 9
* Phone model: Huawei ANE-LX1
* Briar version: 1.2.9 (9d96ce6)
* User feedback: "Unlocked the phone and Briar showed me this."
Stacktrace:
```
java.lang.NullPointerException: Attempt to read from field 'java.lang.String com.android.bluetooth.btservice.AdapterService$ConnectRecord.packageName' on a null object reference
at android.os.Parcel.createException(Parcel.java:1959)
at android.os.Parcel.readException(Parcel.java:1921)
at android.os.Parcel.readException(Parcel.java:1871)
at android.bluetooth.IBluetooth$Stub$Proxy.shouldRefuseConn(IBluetooth.java:2108)
at android.bluetooth.BluetoothSocket.connect(BluetoothSocket.java:400)
at org.briarproject.bramble.plugin.bluetooth.AndroidBluetoothPlugin.connectTo(AndroidBluetoothPlugin.java:206)
at org.briarproject.bramble.plugin.bluetooth.BluetoothPlugin.connect(BluetoothPlugin.java:318)
at org.briarproject.bramble.plugin.bluetooth.BluetoothPlugin.createConnection(BluetoothPlugin.java:337)
at org.briarproject.bramble.plugin.bluetooth.BluetoothPlugin.lambda$connect$1$BluetoothPlugin(BluetoothPlugin.java:290)
at org.briarproject.bramble.plugin.bluetooth.-$$Lambda$BluetoothPlugin$ll6XYbG2pnImYnbEJhWCfN150gw.run(Unknown Source:6)
at java.util.concurrent.ThreadPoolExecutor.processTask(ThreadPoolExecutor.java:1187)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1152)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
at java.lang.Thread.run(Thread.java:784)
```
Last lines of log:
```
08-17 23:11:37.677 I/PollerImpl: Polling plugin org.briarproject.bramble.bluetooth
08-17 23:11:37.694 I/ConnectionRegistryImpl: 2 contacts connected or better: org.briarproject.bramble.blue
tooth
08-17 23:11:37.699 I/BluetoothConnectionLimiterImpl: Can open contact connection
08-17 23:11:37.700 I/BluetoothPlugin: Connecting to A8:[scrubbed]:A9
08-17 23:11:37.702 I/BluetoothConnectionLimiterImpl: Can open contact connection
08-17 23:11:37.702 I/BluetoothPlugin: Connecting to AC:[scrubbed]:EE
08-17 23:11:37.703 I/BluetoothConnectionLimiterImpl: Can open contact connection
08-17 23:11:37.703 I/BluetoothPlugin: Connecting to 10:[scrubbed]:00
```
Looks like a bug in the Bluetooth stack that we could work around by catching the NPE and treating it as a failed connection attempt.Android 1.2https://code.briarproject.org/briar/briar/-/issues/1794No internet connection on IPv6-only network2020-12-11T10:33:06ZpegazNo internet connection on IPv6-only networkHi there,
I've got a big red message at the bottom of my screen saying "no internet connection" when i try to add my first contact, just connected to data of my phone.
I known my phone provider use only ipv6, is that a possible issue?
...Hi there,
I've got a big red message at the bottom of my screen saying "no internet connection" when i try to add my first contact, just connected to data of my phone.
I known my phone provider use only ipv6, is that a possible issue?
Thanks for the job done!Android 1.2akwizgranakwizgranhttps://code.briarproject.org/briar/briar/-/issues/1783Switching "language & region" to English does not switch the settings language2021-05-05T16:17:22ZRobert PollakSwitching "language & region" to English does not switch the settings languageI am using version 1.2.7 from F-Droid.
When I try to switch the interface language from my system standard (which is my native language) to "English (United States), and open the settings after restart, the page title has appropriately c...I am using version 1.2.7 from F-Droid.
When I try to switch the interface language from my system standard (which is my native language) to "English (United States), and open the settings after restart, the page title has appropriately changed to the English "settings", but all the entries are still in my native language.Android 1.2SebastianSebastianhttps://code.briarproject.org/briar/briar/-/issues/1777IllegalStateException when BriarService is recreated after startup2022-07-13T14:35:00ZakwizgranIllegalStateException when BriarService is recreated after startup* Android version: 5.1.1
* Phone model: Samsung SM-J320M (j3xlteub)
* Briar version: 1.2.7 (eb562f8)
Stacktrace:
```
java.lang.IllegalStateException
at org.briarproject.bramble.network.AndroidNetworkManager.startService(AndroidN...* Android version: 5.1.1
* Phone model: Samsung SM-J320M (j3xlteub)
* Briar version: 1.2.7 (eb562f8)
Stacktrace:
```
java.lang.IllegalStateException
at org.briarproject.bramble.network.AndroidNetworkManager.startService(AndroidNetworkManager.java:71)
at org.briarproject.bramble.lifecycle.LifecycleManagerImpl.startServices(LifecycleManagerImpl.java:130)
at org.briarproject.briar.android.BriarService.lambda$onCreate$0$BriarService(BriarService.java:133)
at org.briarproject.briar.android.-$$Lambda$BriarService$Ihm6XxaER2EMRlAKzUA1GpEtxZU.run(lambda)
at java.lang.Thread.run(Thread.java:818)
```
Edited log:
```
06-04 12:25:55.414 I/TorPlugin: First circuit built
06-04 12:25:55.424 I/PollerImpl: Polling plugin org.briarproject.bramble.tor
06-04 12:25:55.428 I/TorPlugin: Connecting to sak[scrubbed]
06-04 12:26:25.431 I/TorPlugin: Could not connect to sak[scrubbed]: java.net.SocketTimeoutException
06-04 12:26:27.252 I/BaseActivity: Starting NavDrawerActivity
06-04 12:26:27.266 I/BriarService: Created
06-04 12:26:27.273 I/LifecycleManagerImpl: Opening database
06-04 12:26:27.299 I/H2Database: Reopening DB: true
06-04 12:26:27.306 I/JdbcDatabase: 2217908857 ms since last compaction
06-04 12:26:27.328 I/LifecycleManagerImpl: Starting services
```
The exception is a canary that's meant to warn us about singletons being reused in violation of their expected lifecycle.
The log shows that TorPlugin and PollerImpl were already running before BriarService was created. The database must have been open too, as the poller was able to load a contact's transport properties.
It looks like a new BriarService instance was created when one already existed, or used to exist. The BriarService instance also has a canary to check for reuse, so this must be a new instance.Android 1.4akwizgranakwizgranhttps://code.briarproject.org/briar/briar/-/issues/1775NullPointerException: println needs a message2022-05-16T13:59:29ZakwizgranNullPointerException: println needs a message* Android version: 10
* Phone model: Google Pixel 4 (flame)
* Briar version: 1.2.7 (eb562f8)
Stacktrace:
```
java.lang.NullPointerException: println needs a message
at android.util.Log.println_native(Native Method)
at an...* Android version: 10
* Phone model: Google Pixel 4 (flame)
* Briar version: 1.2.7 (eb562f8)
Stacktrace:
```
java.lang.NullPointerException: println needs a message
at android.util.Log.println_native(Native Method)
at android.util.Log.w(Log.java:197)
at com.vanniktech.emoji.Utils.getInputMethodHeight(Utils.java:76)
at com.vanniktech.emoji.EmojiPopup.updateKeyboardState(EmojiPopup.java:142)
at com.vanniktech.emoji.EmojiPopup$1.onGlobalLayout(EmojiPopup.java:72)
at android.view.ViewTreeObserver.dispatchOnGlobalLayout(ViewTreeObserver.java:1056)
at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:2652)
at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1745)
at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:7768)
at android.view.Choreographer$CallbackRecord.run(Choreographer.java:967)
at android.view.Choreographer.doCallbacks(Choreographer.java:791)
at android.view.Choreographer.doFrame(Choreographer.java:726)
at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:952)
at android.os.Handler.handleCallback(Handler.java:883)
at android.os.Handler.dispatchMessage(Handler.java:100)
at android.os.Looper.loop(Looper.java:214)
at android.app.ActivityThread.main(ActivityThread.java:7356)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:492)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:930)
```Android 1.4IvanaIvanahttps://code.briarproject.org/briar/briar/-/issues/1764Change app language does not work2021-02-18T10:28:52ZN6P4CFB1BSRSLChange app language does not work**Version**
Briar 1.2.9
**Android version**
Android 10
**Description**
Hello,
have installed the Briar app and go to Settings -> Language & region and select a different language than the Android system language.
After restarting ...**Version**
Briar 1.2.9
**Android version**
Android 10
**Description**
Hello,
have installed the Briar app and go to Settings -> Language & region and select a different language than the Android system language.
After restarting the Briar app the app language was not changed. It still uses the system language.Android 1.2IvanaIvanahttps://code.briarproject.org/briar/briar/-/issues/1716Need to tap "Use Password" twice in unlock screen2020-09-04T12:08:04ZakwizgranNeed to tap "Use Password" twice in unlock screenAndroid version: 9
User feedback:
> When the app is locked on device with registered biometrics, it shows two fingerprint dialogs when clicking "Use Password", instead of transitioning to Password dialog. First it opens BiometricPrompt,...Android version: 9
User feedback:
> When the app is locked on device with registered biometrics, it shows two fingerprint dialogs when clicking "Use Password", instead of transitioning to Password dialog. First it opens BiometricPrompt, then KeyguardManager which again shows the fingerprint dialog. The end result is that user need to tap twice on "Use Password" to use the password option. If BiometricPrompt is removed/disabled from UnlockActivity there are no issues. Further, if device does not have password but PIN instead, it shows on first dialog "Use Password" then "Use PIN" which is correct.Android 1.2akwizgranakwizgranhttps://code.briarproject.org/briar/briar/-/issues/1707IllegalStateException when writing blog post2021-01-13T15:15:32ZakwizgranIllegalStateException when writing blog post* Android version: 9
* Phone model: Honor STF-AL00
* Briar version: 1.2.5 (aad92e3)
Stacktrace:
```java.lang.IllegalStateException
at org.briarproject.briar.android.blog.FeedControllerImpl.onStart(FeedControllerImpl.java:60)
...* Android version: 9
* Phone model: Honor STF-AL00
* Briar version: 1.2.5 (aad92e3)
Stacktrace:
```java.lang.IllegalStateException
at org.briarproject.briar.android.blog.FeedControllerImpl.onStart(FeedControllerImpl.java:60)
at org.briarproject.briar.android.blog.FeedFragment.onStart(FeedFragment.java:118)
at androidx.fragment.app.Fragment.performStart(Fragment.java:2632)
at androidx.fragment.app.FragmentManagerImpl.moveToState(FragmentManagerImpl.java:915)
at androidx.fragment.app.FragmentManagerImpl.moveFragmentToExpectedState(FragmentManagerImpl.java:1238)
at androidx.fragment.app.FragmentManagerImpl.moveToState(FragmentManagerImpl.java:1303)
at androidx.fragment.app.FragmentManagerImpl.dispatchStateChange(FragmentManagerImpl.java:2659)
at androidx.fragment.app.FragmentManagerImpl.dispatchStart(FragmentManagerImpl.java:2619)
at androidx.fragment.app.FragmentController.dispatchStart(FragmentController.java:257)
at androidx.fragment.app.FragmentActivity.onStart(FragmentActivity.java:551)
at androidx.appcompat.app.AppCompatActivity.onStart(AppCompatActivity.java:201)
at org.briarproject.briar.android.activity.BaseActivity.onStart(BaseActivity.java:129)
at org.briarproject.briar.android.activity.BriarActivity.onStart(BriarActivity.java:62)
at org.briarproject.briar.android.navdrawer.NavDrawerActivity.onStart(NavDrawerActivity.java:154)
at android.app.Instrumentation.callActivityOnStart(Instrumentation.java:1419)
at android.app.Activity.performStart(Activity.java:7479)
at android.app.ActivityThread.handleStartActivity(ActivityThread.java:3454)
at android.app.servertransaction.TransactionExecutor.performLifecycleSequence(TransactionExecutor.java:180)
at android.app.servertransaction.TransactionExecutor.cycleToPath(TransactionExecutor.java:165)
at android.app.servertransaction.TransactionExecutor.executeLifecycleState(TransactionExecutor.java:142)
at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:70)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2199)
at android.os.Handler.dispatchMessage(Handler.java:112)
at android.os.Looper.loop(Looper.java:216)
at android.app.ActivityThread.main(ActivityThread.java:7625)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:524)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:987)
```
Edited log:
```02-07 01:37:31.258 I/BriarActivity: Recreating NavDrawerActivity after signing in
02-07 01:37:31.261 I/BaseActivity: Starting NavDrawerActivity
02-07 01:37:31.274 I/BaseActivity: Stopping NavDrawerActivity
02-07 01:37:31.326 I/BaseActivity: Starting NavDrawerActivity
02-07 01:37:31.922 I/BaseActivity: Stopping StartupActivity
02-07 01:37:42.354 I/BasePostFragment: Adding Handler Callback
02-07 01:37:42.354 I/BaseControllerImpl: Loaded header from cache
02-07 01:37:42.354 I/BaseControllerImpl: Loaded text from cache
02-07 01:37:46.128 I/BasePostFragment: Removing Handler Callback
02-07 01:37:47.474 I/BaseActivity: Starting WriteBlogPostActivity
02-07 01:37:47.783 I/BaseActivity: Stopping NavDrawerActivity
```
The crash happened about 2 seconds later.
Possibly related to #1706.Android 1.2akwizgranakwizgran