briar issueshttps://code.briarproject.org/briar/briar/-/issues2021-05-05T16:12:24Zhttps://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/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/1971Upgrade Tor to 0.3.5.142021-05-31T12:05:53ZakwizgranUpgrade Tor to 0.3.5.14https://gitweb.torproject.org/tor.git/tree/ChangeLog?h=tor-0.3.5.14https://gitweb.torproject.org/tor.git/tree/ChangeLog?h=tor-0.3.5.14Android 1.2akwizgranakwizgranhttps://code.briarproject.org/briar/briar/-/issues/1947NPE when forum post arrives before parent is loaded2021-02-19T17:55:49ZakwizgranNPE when forum post arrives before parent is loaded* Android version: 4.1.2
* Phone model: Samsung Galaxy Ace 2 (GT-I8160)
* Briar version: 1.2.15 (885b03c) (debug build)
The crash happened when I opened a forum from the invitation message in a private conversation, then quickly hit the...* Android version: 4.1.2
* Phone model: Samsung Galaxy Ace 2 (GT-I8160)
* Briar version: 1.2.15 (885b03c) (debug build)
The crash happened when I opened a forum from the invitation message in a private conversation, then quickly hit the back button.
Stacktrace:
```
java.lang.NullPointerException
at org.briarproject.briar.client.MessageTreeImpl.parseNode(MessageTreeImpl.java:74)
at org.briarproject.briar.client.MessageTreeImpl.add(MessageTreeImpl.java:50)
at org.briarproject.briar.client.MessageTreeImpl.add(MessageTreeImpl.java:57)
at org.briarproject.briar.android.threaded.ThreadListViewModel.addItem(ThreadListViewModel.java:200)
at org.briarproject.briar.android.forum.ForumViewModel.eventOccurred(ForumViewModel.java:98)
at org.briarproject.bramble.event.EventBusImpl.lambda$broadcast$0(EventBusImpl.java:42)
at org.briarproject.bramble.event.EventBusImpl.lambda$broadcast$0$EventBusImpl(EventBusImpl.java)
at org.briarproject.bramble.event.-$$Lambda$EventBusImpl$clxOMxNLcHINGTGi9tkg-7meojQ.run(lambda)
at android.os.Handler.handleCallback(Handler.java:615)
at android.os.Handler.dispatchMessage(Handler.java:92)
at android.os.Looper.loop(Looper.java:137)
at android.app.ActivityThread.main(ActivityThread.java:4867)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:511)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1007)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:774)
at dalvik.system.NativeStart.main(Native Method)
```
Edited log:
```
02-19 14:29:35.867 I/BaseActivity: Pausing ConversationActivity
02-19 14:29:35.918 I/BaseActivity: Creating ForumActivity
02-19 14:29:36.128 I/BaseActivity: Starting ForumActivity
02-19 14:29:36.129 I/BaseActivity: Resuming ForumActivity
02-19 14:29:36.253 I/DuplexOutgoingSession: Generated ack: true
02-19 14:29:36.254 I/DuplexOutgoingSession: Sent ack
02-19 14:29:36.643 I/BaseActivity: Pausing ForumActivity
02-19 14:29:36.692 I/BaseActivity: Resuming ConversationActivity
02-19 14:29:36.763 I/ForumViewModel: Forum post received, adding...
```
The message tree assumes that when a message is added, its parent (which is a dependency) is already in the tree.
ForumViewModel logs the amount of time taken to load the message headers and bodies. This is a debug build, so messages logged with logDuration() would appear in the log. Those messages don't appear in the log, so it looks like the new message was added to the tree before the initial load completed, so its parent was present in the DB but not in the tree.Android 1.2akwizgranakwizgranhttps://code.briarproject.org/briar/briar/-/issues/1939Private group is greyed out after rotating screen2021-02-18T16:51:40ZakwizgranPrivate group is greyed out after rotating screen![device-2021-02-11-150926](/uploads/b17c093a0c55f126e950c695aee3ae00/device-2021-02-11-150926.png)
Should be fixed by !1371.![device-2021-02-11-150926](/uploads/b17c093a0c55f126e950c695aee3ae00/device-2021-02-11-150926.png)
Should be fixed by !1371.Android 1.2IvanaIvanahttps://code.briarproject.org/briar/briar/-/issues/1934Upgrade obfs4proxy to fix meek's certificate pinning2021-02-17T17:15:34ZakwizgranUpgrade obfs4proxy to fix meek's certificate pinningobfs4proxy's meek-lite transport stopped working on 7 December due to a change in the TLS certificate chain of the Azure infrastructure. This will prevent Briar users in China from connecting to Tor, as well as any users in other countri...obfs4proxy's meek-lite transport stopped working on 7 December due to a change in the TLS certificate chain of the Azure infrastructure. This will prevent Briar users in China from connecting to Tor, as well as any users in other countries who are on IPv6-only networks and have bridges enabled.
https://gitlab.torproject.org/tpo/anti-censorship/pluggable-transports/meek/-/issues/40001
https://gitweb.torproject.org/pluggable-transports/obfs4.git/log/
There hasn't been a new obfs4proxy release since the fix was merged, so we'll need to build from master. I suggest we use `0.0.12-dev-<commit ID>` as the version number, as this isn't a snapshot build in the Maven sense (the artifact won't change when changes are made upstream).Android 1.2akwizgranakwizgranhttps://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/1922Upgrade Tor to 0.3.5.132021-02-17T17:19:27ZakwizgranUpgrade Tor to 0.3.5.13Tor 0.3.5.13 includes the following bugfix that should improve v3 hidden service reachability:
> Major bugfixes (onion service v3, backport from 0.4.5.3-rc):
> - Stop requiring a live consensus for v3 clients and services, and
> allow...Tor 0.3.5.13 includes the following bugfix that should improve v3 hidden service reachability:
> Major bugfixes (onion service v3, backport from 0.4.5.3-rc):
> - Stop requiring a live consensus for v3 clients and services, and
> allow a "reasonably live" consensus instead. This allows v3 onion
> services to work even if the authorities fail to generate a
> consensus for more than 2 hours in a row. Fixes bug 40237; bugfix
> on 0.3.5.1-alpha.Android 1.2IvanaIvanahttps://code.briarproject.org/briar/briar/-/issues/1917Crash reporter captures log from crash reporter process, not main process2021-03-24T16:05:15ZakwizgranCrash reporter captures log from crash reporter process, not main processThe new crash reporter captures the log output from the crash reporter process, not the main Briar process. This log output doesn't give any information about the cause of the crash - it just shows the crash reporter process being create...The new crash reporter captures the log output from the crash reporter process, not the main Briar process. This log output doesn't give any information about the cause of the crash - it just shows the crash reporter process being created, injecting its components and launching CrashReportActivity.Android 1.2IvanaIvanahttps://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/1849Upgrade Tor to 0.3.5.122020-11-16T16:52:46ZakwizgranUpgrade Tor to 0.3.5.12Tor 0.3.5.12 is out. This release has a security fix that could affect anonymity, and an updated list of fallback directories, which might improve bootstrapping.
https://gitweb.torproject.org/tor.git/tree/ChangeLog?h=tor-0.3.5.12Tor 0.3.5.12 is out. This release has a security fix that could affect anonymity, and an updated list of fallback directories, which might improve bootstrapping.
https://gitweb.torproject.org/tor.git/tree/ChangeLog?h=tor-0.3.5.12Android 1.2akwizgranakwizgranhttps://code.briarproject.org/briar/briar/-/issues/1841NavDrawerActivityTest fails with InitializationError on API 162020-11-11T16:56:24ZakwizgranNavDrawerActivityTest fails with InitializationError on API 16NavDrawerActivityTest fails on the API 16 emulator because it can't find javax.inject.Inject.
```
java.lang.RuntimeException: Delegate runner 'androidx.test.internal.runner.junit4.AndroidJUnit4ClassRunner' for AndroidJUnit4 could not be...NavDrawerActivityTest fails on the API 16 emulator because it can't find javax.inject.Inject.
```
java.lang.RuntimeException: Delegate runner 'androidx.test.internal.runner.junit4.AndroidJUnit4ClassRunner' for AndroidJUnit4 could not be loaded.
at androidx.test.ext.junit.runners.AndroidJUnit4.throwInitializationError(AndroidJUnit4.java:92)
at androidx.test.ext.junit.runners.AndroidJUnit4.loadRunner(AndroidJUnit4.java:82)
at androidx.test.ext.junit.runners.AndroidJUnit4.loadRunner(AndroidJUnit4.java:51)
at androidx.test.ext.junit.runners.AndroidJUnit4.<init>(AndroidJUnit4.java:46)
at java.lang.reflect.Constructor.constructNative(Native Method)
at java.lang.reflect.Constructor.newInstance(Constructor.java:417)
at org.junit.internal.builders.AnnotatedBuilder.buildRunner(AnnotatedBuilder.java:104)
at org.junit.internal.builders.AnnotatedBuilder.runnerForClass(AnnotatedBuilder.java:86)
at androidx.test.internal.runner.junit4.AndroidAnnotatedBuilder.runnerForClass(AndroidAnnotatedBuilder.java:63)
at org.junit.runners.model.RunnerBuilder.safeRunnerForClass(RunnerBuilder.java:59)
at org.junit.internal.builders.AllDefaultPossibilitiesBuilder.runnerForClass(AllDefaultPossibilitiesBuilder.java:26)
at androidx.test.internal.runner.AndroidRunnerBuilder.runnerForClass(AndroidRunnerBuilder.java:153)
at androidx.test.internal.runner.TestLoader$ScanningRunnerBuilder.runnerForClass(TestLoader.java:143)
at org.junit.runners.model.RunnerBuilder.safeRunnerForClass(RunnerBuilder.java:59)
at androidx.test.internal.runner.TestLoader.doCreateRunner(TestLoader.java:73)
at androidx.test.internal.runner.TestLoader.getRunnersFor(TestLoader.java:104)
at androidx.test.internal.runner.TestRequestBuilder.build(TestRequestBuilder.java:793)
at androidx.test.runner.AndroidJUnitRunner.buildRequest(AndroidJUnitRunner.java:547)
at androidx.test.runner.AndroidJUnitRunner.onStart(AndroidJUnitRunner.java:390)
at android.app.Instrumentation$InstrumentationThread.run(Instrumentation.java:1584)
Caused by: java.lang.reflect.InvocationTargetException
at java.lang.reflect.Constructor.constructNative(Native Method)
at java.lang.reflect.Constructor.newInstance(Constructor.java:417)
at androidx.test.ext.junit.runners.AndroidJUnit4.loadRunner(AndroidJUnit4.java:72)
... 18 more
Caused by: java.lang.NoClassDefFoundError: javax/inject/Inject
at java.lang.reflect.Field.getDeclaredAnnotations(Native Method)
at java.lang.reflect.Field.getDeclaredAnnotations(Field.java:204)
at java.lang.reflect.AccessibleObject.getAnnotations(AccessibleObject.java:138)
at org.junit.runners.model.FrameworkField.getAnnotations(FrameworkField.java:31)
at org.junit.runners.model.TestClass.addToAnnotationLists(TestClass.java:84)
at org.junit.runners.model.TestClass.scanAnnotatedMembers(TestClass.java:71)
at org.junit.runners.model.TestClass.<init>(TestClass.java:57)
at org.junit.runners.ParentRunner.createTestClass(ParentRunner.java:88)
at org.junit.runners.ParentRunner.<init>(ParentRunner.java:83)
at org.junit.runners.BlockJUnit4ClassRunner.<init>(BlockJUnit4ClassRunner.java:65)
at androidx.test.internal.runner.junit4.AndroidJUnit4ClassRunner.<init>(AndroidJUnit4ClassRunner.java:43)
at androidx.test.internal.runner.junit4.AndroidJUnit4ClassRunner.<init>(AndroidJUnit4ClassRunner.java:48)
... 21 more
Caused by: java.lang.ClassNotFoundException: javax.inject.Inject
at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:61)
at java.lang.ClassLoader.loadClass(ClassLoader.java:501)
at java.lang.ClassLoader.loadClass(ClassLoader.java:461)
... 33 more
```Android 1.2akwizgranakwizgranhttps://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/1785NPE when no Bluetooth Adapter available2020-11-16T10:36:01ZTorsten GroteNPE when no Bluetooth Adapter available```ruby
'java.lang.String android.bluetooth.BluetoothAdapter.getAddress()' on a null object reference
at org.briarproject.bramble.util.AndroidUtils.getBluetoothAddressAndMethod(AndroidUtils.java:55)
at org.briarpr...```ruby
'java.lang.String android.bluetooth.BluetoothAdapter.getAddress()' on a null object reference
at org.briarproject.bramble.util.AndroidUtils.getBluetoothAddressAndMethod(AndroidUtils.java:55)
at org.briarproject.bramble.util.AndroidUtils.getBluetoothAddress(AndroidUtils.java:48)
at org.briarproject.bramble.plugin.bluetooth.AndroidBluetoothPlugin.getBluetoothAddress(AndroidBluetoothPlugin.java:138)
at org.briarproject.bramble.plugin.bluetooth.BluetoothPlugin.updateProperties(BluetoothPlugin.java:216)
````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/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/1759AndroidTaskScheduler doesn't correctly handle cancellation of periodic tasks2020-08-14T13:04:06ZakwizgranAndroidTaskScheduler doesn't correctly handle cancellation of periodic tasksAndroidTaskScheduler#scheduleWithFixedRate() returns a Future that can be used to cancel the task. But if the Future is cancelled after the first execution of the task, subsequent executions aren't cancelled.AndroidTaskScheduler#scheduleWithFixedRate() returns a Future that can be used to cancel the task. But if the Future is cancelled after the first execution of the task, subsequent executions aren't cancelled.Android 1.2akwizgranakwizgranhttps://code.briarproject.org/briar/briar/-/issues/1758Periodic timeout monitor task is not cancelled2020-08-14T11:43:47ZakwizgranPeriodic timeout monitor task is not cancelledThe periodic timeout monitor task is meant to be cancelled when the last TimeoutInputStream is closed, but this doesn't happen unless every stream's close() method is called. Transport connections are often closed without calling close()...The periodic timeout monitor task is meant to be cancelled when the last TimeoutInputStream is closed, but this doesn't happen unless every stream's close() method is called. Transport connections are often closed without calling close() on the input stream, leaving the periodic task running unnecessarily and leaking a reference to the closed stream.Android 1.2akwizgranakwizgran