briar issueshttps://code.briarproject.org/briar/briar/-/issues2021-08-27T11:37:48Zhttps://code.briarproject.org/briar/briar/-/issues/1459IllegalArgumentException when activating keys2021-08-27T11:37:48ZakwizgranIllegalArgumentException when activating keys* Android version: 8.0
* Phone model: Huawei P8 Lite 2017 (HWPRA-H)
* Briar version: 1.1.1 and 1.1.3
Google Play has 12 occurrences of this crash across a three-day period: eight crashes on 1.1.3 and four on 1.1.1. The crashes on 1.1.3 ...* Android version: 8.0
* Phone model: Huawei P8 Lite 2017 (HWPRA-H)
* Briar version: 1.1.1 and 1.1.3
Google Play has 12 occurrences of this crash across a three-day period: eight crashes on 1.1.3 and four on 1.1.1. The crashes on 1.1.3 and 1.1.1 are interleaved in time, suggesting they come from two or more devices.
Stacktrace:
```
java.lang.IllegalArgumentException:
at org.briarproject.bramble.transport.TransportKeyManagerImpl.activateKeys (TransportKeyManagerImpl.java:206)
at org.briarproject.bramble.transport.KeyManagerImpl.activateKeys (KeyManagerImpl.java:123)
at org.briarproject.briar.introduction.IntroduceeProtocolEngine.onRemoteActivate (IntroduceeProtocolEngine.java:501)
at org.briarproject.briar.introduction.IntroduceeProtocolEngine.onActivateMessage (IntroduceeProtocolEngine.java:215)
at org.briarproject.briar.introduction.IntroduceeProtocolEngine.onActivateMessage (IntroduceeProtocolEngine.java:53)
at org.briarproject.briar.introduction.IntroductionManagerImpl.handleMessage (IntroductionManagerImpl.java:235)
at org.briarproject.briar.introduction.IntroductionManagerImpl.incomingMessage (IntroductionManagerImpl.java:193)
at org.briarproject.briar.client.BdfIncomingMessageHook.incomingMessage (BdfIncomingMessageHook.java:60)
at org.briarproject.bramble.sync.ValidationManagerImpl.deliverMessage (ValidationManagerImpl.java:334)
at org.briarproject.bramble.sync.ValidationManagerImpl.storeMessageContext (ValidationManagerImpl.java:295)
at org.briarproject.bramble.sync.ValidationManagerImpl.lambda$storeMessageContextAsync$3$ValidationManagerImpl (ValidationManagerImpl.java:259)
at org.briarproject.bramble.sync.ValidationManagerImpl$$Lambda$5.run (Unknown Source:10)
at java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1162)
at java.util.concurrent.ThreadPoolExecutor$Worker.run (ThreadPoolExecutor.java:636)
at java.lang.Thread.run (Thread.java:784)
```Android 1.3akwizgranakwizgranhttps://code.briarproject.org/briar/briar/-/issues/1455NPE when getting stream context2018-11-27T10:00:48ZakwizgranNPE when getting stream context* Android version: 8.1.0
* Phone model: Xiaomi Redmi Note 4 (lineage_mido)
* Briar version: 1.1.4 (d02b30e)
Stacktrace:
```
java.lang.NullPointerException
at org.briarproject.bramble.db.DatabaseComponentImpl.transactionWithResul...* Android version: 8.1.0
* Phone model: Xiaomi Redmi Note 4 (lineage_mido)
* Briar version: 1.1.4 (d02b30e)
Stacktrace:
```
java.lang.NullPointerException
at org.briarproject.bramble.db.DatabaseComponentImpl.transactionWithResult(DatabaseComponentImpl.java:187)
at org.briarproject.bramble.transport.KeyManagerImpl.getStreamContext(KeyManagerImpl.java:152)
at org.briarproject.bramble.plugin.ConnectionManagerImpl$ManageIncomingDuplexConnection.run(ConnectionManagerImpl.java:248)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1162)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:636)
at java.lang.Thread.run(Thread.java:764)
```Android 1.1akwizgranakwizgranhttps://code.briarproject.org/briar/briar/-/issues/1454ArrayIndexOutOfBoundsException in SettingsActivity2019-11-06T09:47:05ZakwizgranArrayIndexOutOfBoundsException in SettingsActivityI'm guessing this may be related to removing the system default option for the dark theme.
* Android version: 8.0.0
* Phone model: Samsung SM-G965F (star2ltexx)
* Briar version: 1.1.4
Stacktrace:
```
java.lang.ArrayIndexOutOfBoundsExce...I'm guessing this may be related to removing the system default option for the dark theme.
* Android version: 8.0.0
* Phone model: Samsung SM-G965F (star2ltexx)
* Briar version: 1.1.4
Stacktrace:
```
java.lang.ArrayIndexOutOfBoundsException: length=3; index=3
at android.support.v7.preference.ListPreference.getEntry(ListPreference.java:229)
at android.support.v7.preference.ListPreference.getSummary(ListPreference.java:174)
at android.support.v7.preference.Preference.onBindViewHolder(Preference.java:584)
at android.support.v7.preference.PreferenceGroupAdapter.onBindViewHolder(PreferenceGroupAdapter.java:381)
at android.support.v7.preference.PreferenceGroupAdapter.onBindViewHolder(PreferenceGroupAdapter.java:45)
at android.support.v7.widget.RecyclerView$Adapter.onBindViewHolder(RecyclerView.java:6781)
at android.support.v7.widget.RecyclerView$Adapter.bindViewHolder(RecyclerView.java:6823)
at android.support.v7.widget.RecyclerView$Recycler.tryBindViewHolderByDeadline(RecyclerView.java:5752)
at android.support.v7.widget.RecyclerView$Recycler.tryGetViewHolderForPositionByDeadline(RecyclerView.java:6019)
at android.support.v7.widget.RecyclerView$Recycler.getViewForPosition(RecyclerView.java:5858)
at android.support.v7.widget.RecyclerView$Recycler.getViewForPosition(RecyclerView.java:5854)
at android.support.v7.widget.LinearLayoutManager$LayoutState.next(LinearLayoutManager.java:2230)
at android.support.v7.widget.LinearLayoutManager.layoutChunk(LinearLayoutManager.java:1557)
at android.support.v7.widget.LinearLayoutManager.fill(LinearLayoutManager.java:1517)
at android.support.v7.widget.LinearLayoutManager.onLayoutChildren(LinearLayoutManager.java:612)
at android.support.v7.widget.RecyclerView.dispatchLayoutStep2(RecyclerView.java:3924)
at android.support.v7.widget.RecyclerView.dispatchLayout(RecyclerView.java:3641)
at android.support.v7.widget.RecyclerView.onLayout(RecyclerView.java:4194)
at android.view.View.layout(View.java:20822)
at android.view.ViewGroup.layout(ViewGroup.java:6401)
at android.widget.FrameLayout.layoutChildren(FrameLayout.java:323)
at android.widget.FrameLayout.onLayout(FrameLayout.java:261)
at android.view.View.layout(View.java:20822)
at android.view.ViewGroup.layout(ViewGroup.java:6401)
at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1791)
at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1635)
at android.widget.LinearLayout.onLayout(LinearLayout.java:1544)
at android.view.View.layout(View.java:20822)
at android.view.ViewGroup.layout(ViewGroup.java:6401)
at android.widget.FrameLayout.layoutChildren(FrameLayout.java:323)
at android.widget.FrameLayout.onLayout(FrameLayout.java:261)
at android.view.View.layout(View.java:20822)
at android.view.ViewGroup.layout(ViewGroup.java:6401)
at android.widget.FrameLayout.layoutChildren(FrameLayout.java:323)
at android.widget.FrameLayout.onLayout(FrameLayout.java:261)
at android.view.View.layout(View.java:20822)
at android.view.ViewGroup.layout(ViewGroup.java:6401)
at android.widget.FrameLayout.layoutChildren(FrameLayout.java:323)
at android.widget.FrameLayout.onLayout(FrameLayout.java:261)
at android.view.View.layout(View.java:20822)
at android.view.ViewGroup.layout(ViewGroup.java:6401)
at android.support.v7.widget.ActionBarOverlayLayout.onLayout(ActionBarOverlayLayout.java:444)
at android.view.View.layout(View.java:20822)
at android.view.ViewGroup.layout(ViewGroup.java:6401)
at android.widget.FrameLayout.layoutChildren(FrameLayout.java:323)
at android.widget.FrameLayout.onLayout(FrameLayout.java:261)
at android.view.View.layout(View.java:20822)
at android.view.ViewGroup.layout(ViewGroup.java:6401)
at android.widget.FrameLayout.layoutChildren(FrameLayout.java:323)
at android.widget.FrameLayout.onLayout(FrameLayout.java:261)
at android.view.View.layout(View.java:20822)
at android.view.ViewGroup.layout(ViewGroup.java:6401)
at android.widget.FrameLayout.layoutChildren(FrameLayout.java:323)
at android.widget.FrameLayout.onLayout(FrameLayout.java:261)
at android.view.View.layout(View.java:20822)
at android.view.ViewGroup.layout(ViewGroup.java:6401)
at android.support.v7.widget.ActionBarOverlayLayout.onLayout(ActionBarOverlayLayout.java:444)
at android.view.View.layout(View.java:20822)
at android.view.ViewGroup.layout(ViewGroup.java:6401)
at android.widget.FrameLayout.layoutChildren(FrameLayout.java:323)
at android.widget.FrameLayout.onLayout(FrameLayout.java:261)
at android.view.View.layout(View.java:20822)
at android.view.ViewGroup.layout(ViewGroup.java:6401)
at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1791)
at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1635)
at android.widget.LinearLayout.onLayout(LinearLayout.java:1544)
at android.view.View.layout(View.java:20822)
at android.view.ViewGroup.layout(ViewGroup.java:6401)
at android.widget.FrameLayout.layoutChildren(FrameLayout.java:323)
at android.widget.FrameLayout.onLayout(FrameLayout.java:261)
at com.android.internal.policy.DecorView.onLayout(DecorView.java:944)
at android.view.View.layout(View.java:20822)
at android.view.ViewGroup.layout(ViewGroup.java:6401)
at android.view.ViewRootImpl.performLayout(ViewRootImpl.java:2948)
at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:2635)
at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1779)
at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:7810)
at android.view.Choreographer$CallbackRecord.run(Choreographer.java:911)
at android.view.Choreographer.doCallbacks(Choreographer.java:723)
at android.view.Choreographer.doFrame(Choreographer.java:658)
at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:897)
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:6938)
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)
```Android 1.2Torsten GroteTorsten Grotehttps://code.briarproject.org/briar/briar/-/issues/1453the link to the Briar application on Google Play in the user manual is broken2018-11-27T09:59:45ZRoman Beslikme@beroal.in.uathe link to the Briar application on Google Play in the user manual is brokenIn the chapter "Installation". The error message is "URL not found".In the chapter "Installation". The error message is "URL not found".Android 1.1Roman Beslikme@beroal.in.uaRoman Beslikme@beroal.in.uahttps://code.briarproject.org/briar/briar/-/issues/1452Websocket Authentication2018-11-27T10:00:33ZTorsten GroteWebsocket AuthenticationDespite many (older) claims in the internet that you can establish websocket connections with basic auth, this doesn't seem to be true for javascript libraries running in a recent browser. I managed to do it in Python and assumed it will...Despite many (older) claims in the internet that you can establish websocket connections with basic auth, this doesn't seem to be true for javascript libraries running in a recent browser. I managed to do it in Python and assumed it will just work on browsers as well, but it seems that isn't the case. At least I haven't been able to make this work. The only thing we can send in the upgrade request from a browser is a list of protocols. In absence of a standardized authentication mechanism, there's people using this already to pass auth tokens. I confirmed that we can access this header on the server side and check if there's an auth token in it.
If we don't want that hacky (but easy) solution, I am afraid we need to get into the business of tracking each session's authentication state and require them to send a first message with the token before we start sending stuff to it. Maybe even terminate sessions that haven't authenticated after a timeout.Headless MVPTorsten GroteTorsten Grotehttps://code.briarproject.org/briar/briar/-/issues/1451"All in briar-headless" run configuration runs tests in other modules2018-11-07T17:47:51Zakwizgran"All in briar-headless" run configuration runs tests in other modulesThe "All in briar-headless" run configuration in Android Studio runs tests in other modules as well as briar-headless. It seems to be picking up JUnit 4 tests from all modules.The "All in briar-headless" run configuration in Android Studio runs tests in other modules as well as briar-headless. It seems to be picking up JUnit 4 tests from all modules.Android 1.1Torsten GroteTorsten Grotehttps://code.briarproject.org/briar/briar/-/issues/1450"All tests" run confguration doesn't run briar-android tests2018-11-27T10:00:04Zakwizgran"All tests" run confguration doesn't run briar-android testsThe "All tests" run configuration for Android Studio stops after running the briar-headless tests, so the briar-android tests aren't run.The "All tests" run configuration for Android Studio stops after running the briar-headless tests, so the briar-android tests aren't run.Android 1.1Torsten GroteTorsten Grotehttps://code.briarproject.org/briar/briar/-/issues/1449Why not migrate to v3 hidden Service address ?2018-11-07T15:09:55ZveraWhy not migrate to v3 hidden Service address ?Why does briar still generate only onion2 address even though the tor-android-binary can work with hidden service v3 now? https://code.briarproject.org/briar/briar/blob/master/bramble-core/src/main/java/org/briarproject/bramble/plugin/to...Why does briar still generate only onion2 address even though the tor-android-binary can work with hidden service v3 now? https://code.briarproject.org/briar/briar/blob/master/bramble-core/src/main/java/org/briarproject/bramble/plugin/tor/TorPlugin.java#L449
And I found the `NEW:BEST` in https://github.com/akwizgran/jtorctl/blob/master/net/freehaven/tor/control/TorControlConnection.java#L763 always generate RSA1024 key, and it should use `NEW:ED25519-V3` to generate ed25519 key.https://code.briarproject.org/briar/briar/-/issues/1446SecurityException when starting TestDataActivity with multiple Briar versions...2018-11-07T09:52:46ZakwizgranSecurityException when starting TestDataActivity with multiple Briar versions installed* Android version: 7.1.2
* Phone model: Motorola Moto G4 (lineage_athene)
* Briar version: 1.1.3 (93090f0, a debug build for testing the remote contact UX)
* Package name: org.briarproject.briar.android.debug.qr
Stack trace:
```
java.la...* Android version: 7.1.2
* Phone model: Motorola Moto G4 (lineage_athene)
* Briar version: 1.1.3 (93090f0, a debug build for testing the remote contact UX)
* Package name: org.briarproject.briar.android.debug.qr
Stack trace:
```
java.lang.SecurityException: Permission Denial: starting Intent { cmp=org.briarproject.briar.android.debug/org.briarproject.briar.android.test.TestDataActivity } from ProcessRecord{81ac00c 16789:org.briarproject.briar.android.debug.qr/u0a88} (pid=16789, uid=10088) not exported from uid 10087
at android.os.Parcel.readException(Parcel.java:1684)
at android.os.Parcel.readException(Parcel.java:1637)
at android.app.ActivityManagerProxy.startActivity(ActivityManagerNative.java:3101)
at android.app.Instrumentation.execStartActivity(Instrumentation.java:1520)
at android.app.Activity.startActivityForResult(Activity.java:4229)
at android.support.v4.app.FragmentActivity.startActivityForResult(FragmentActivity.java:767)
at android.app.Activity.startActivityForResult(Activity.java:4187)
at android.support.v4.app.FragmentActivity.startActivityForResult(FragmentActivity.java:754)
at android.app.Activity.startActivity(Activity.java:4526)
at android.app.Activity.startActivity(Activity.java:4494)
at android.content.ContextWrapper.startActivity(ContextWrapper.java:356)
at android.support.v7.preference.Preference.performClick(Preference.java:1180)
at android.support.v7.preference.Preference.performClick(Preference.java:1148)
at android.support.v7.preference.Preference$1.onClick(Preference.java:172)
at android.view.View.performClick(View.java:5637)
at android.view.View$PerformClick.run(View.java:22433)
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:6186)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:889)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:779)
```
It looks like the intent is trying to open an activity that belongs to another version of Briar with a different package name (org.briarproject.briar.android.debug rather than org.briarproject.briar.android.debug.qr).
Although this was a debug build, I'm opening a ticket because it suggests something unexpected is happening in the way intents are handled - shouldn't they always be routed to the same app by default if a component is specified?Julian DehmJulian Dehmhttps://code.briarproject.org/briar/briar/-/issues/1437List of recently used emoji is reversed2018-12-19T12:27:05ZTorsten GroteList of recently used emoji is reversedSo I've been eating my own dog food and always had issues finding my emoji until I realized that the emoji I had used last is always at the *end* of the list instead of at the *beginning* where I would expected it.So I've been eating my own dog food and always had issues finding my emoji until I realized that the emoji I had used last is always at the *end* of the list instead of at the *beginning* where I would expected it.Android 1.1Torsten GroteTorsten Grotehttps://code.briarproject.org/briar/briar/-/issues/1435[android] Migrate to HtmlCompat2020-08-14T11:32:43ZTorsten Grote[android] Migrate to HtmlCompat`UiUtils#getSpanned()` should use the new HtmlCompat.
https://commonsware.com/blog/2018/05/29/at-last-htmlcompat.html`UiUtils#getSpanned()` should use the new HtmlCompat.
https://commonsware.com/blog/2018/05/29/at-last-htmlcompat.htmlAndroid 1.2https://code.briarproject.org/briar/briar/-/issues/1434Implement backend for sending and receiving image attachments2019-11-12T13:45:59ZTorsten GroteImplement backend for sending and receiving image attachments### Receiving Image Attachments
Private message headers will include a list of attachments, and there will be a `MessagingManager` method for loading an attachment, which will include the attachment data as a `ByteBuffer`, later to be c...### Receiving Image Attachments
Private message headers will include a list of attachments, and there will be a `MessagingManager` method for loading an attachment, which will include the attachment data as a `ByteBuffer`, later to be converted to an `InputStream` if we find that loading images into ByteBuffers won't scale.
This implies that private message headers (in the sense of headers belonging to the private messaging client) will no longer correspond to the root class `PrivateMessageHeader` (from which all one-to-one headers currently inherit). The root class may need to be renamed, and some refactoring of the code that handles that hierarchy will be needed.
### Sending Image Attachments
*TODO*: MessagingManager API for creating local messages with optional attachmentsAndroid 1.3Torsten GroteTorsten Grotehttps://code.briarproject.org/briar/briar/-/issues/1433BdfReaderImpl has undefined behaviour for strings with illegal byte sequences2018-10-30T13:58:53ZakwizgranBdfReaderImpl has undefined behaviour for strings with illegal byte sequencesBdfReaderImpl uses the `String(byte[] bytes, int offset, int length, String charsetName)` constructor to convert UTF-8 byte arrays into strings. The [javadoc](https://docs.oracle.com/javase/8/docs/api/java/lang/String.html#String-byte:A-...BdfReaderImpl uses the `String(byte[] bytes, int offset, int length, String charsetName)` constructor to convert UTF-8 byte arrays into strings. The [javadoc](https://docs.oracle.com/javase/8/docs/api/java/lang/String.html#String-byte:A-int-int-java.lang.String-) says "The behavior of this constructor when the given bytes are not valid in the given charset is unspecified. The CharsetDecoder class should be used when more control over the decoding process is required."
We have a `StringUtils.toUtf8(byte[] bytes)` method with well-defined behaviour for this situation (illegal byte sequences are ignored), which we should probably be using here (and fuzz-testing).Android 1.1akwizgranakwizgranhttps://code.briarproject.org/briar/briar/-/issues/1428Log messages with level FINE aren't recorded in Android's system log2019-10-09T12:17:59ZakwizgranLog messages with level FINE aren't recorded in Android's system logLog messages with level FINE (such as timing measurements) aren't being recorded in Android's system log. These messages should be recorded on debug and beta builds, where the root logger's log level is set to FINE.
The messages are rec...Log messages with level FINE (such as timing measurements) aren't being recorded in Android's system log. These messages should be recorded on debug and beta builds, where the root logger's log level is set to FINE.
The messages are recorded in our own internal log, as expected, so they're included in crash reports and feedback from debug and beta builds.Android 1.1akwizgranakwizgranhttps://code.briarproject.org/briar/briar/-/issues/1426Feedback data is hard to read in preview screen2019-06-18T16:52:08ZakwizgranFeedback data is hard to read in preview screenSince [upgrading ACRA](https://code.briarproject.org/briar/briar/commit/b972d1fc13570fa6258048d5e8a429f9882b8ef6) the contents of crash reports and feedback are shown in the preview as blobs of JSON rather than key-value pairs, which mak...Since [upgrading ACRA](https://code.briarproject.org/briar/briar/commit/b972d1fc13570fa6258048d5e8a429f9882b8ef6) the contents of crash reports and feedback are shown in the preview as blobs of JSON rather than key-value pairs, which makes them harder to read.
There also seems to be an issue with the scroll view cutting off the bottom of the content.Android 1.1Torsten GroteTorsten Grotehttps://code.briarproject.org/briar/briar/-/issues/1423IllegalStateException when key agreement fails2021-01-13T16:12:06ZakwizgranIllegalStateException when key agreement fails* Android version: 5.1.1
* Briar version: 1.1.1 (9476782)
* Phone model: Samsung SM-J200G (j2ltedd)
Stacktrace:
```
java.lang.IllegalStateException: Can not perform this action after onSaveInstanceState
at android.support.v4.app...* Android version: 5.1.1
* Briar version: 1.1.1 (9476782)
* Phone model: Samsung SM-J200G (j2ltedd)
Stacktrace:
```
java.lang.IllegalStateException: Can not perform this action after onSaveInstanceState
at android.support.v4.app.FragmentManagerImpl.checkStateLoss(FragmentManager.java:2053)
at android.support.v4.app.FragmentManagerImpl.enqueueAction(FragmentManager.java:2079)
at android.support.v4.app.BackStackRecord.commitInternal(BackStackRecord.java:678)
at android.support.v4.app.BackStackRecord.commit(BackStackRecord.java:632)
at org.briarproject.briar.android.activity.BaseActivity.showNextFragment(BaseActivity.java:147)
at org.briarproject.briar.android.keyagreement.KeyAgreementActivity.showErrorFragment(KeyAgreementActivity.java:193)
at org.briarproject.briar.android.keyagreement.ContactExchangeActivity.keyAgreementFailed(ContactExchangeActivity.java:107)
at org.briarproject.briar.android.keyagreement.KeyAgreementFragment.lambda$keyAgreementFailed$2$KeyAgreementFragment(KeyAgreementFragment.java:283)
at org.briarproject.briar.android.keyagreement.KeyAgreementFragment$$Lambda$2.run(Unknown Source)
at org.briarproject.briar.android.fragment.BaseFragment.lambda$runOnUiThreadUnlessDestroyed$0$BaseFragment(BaseFragment.java:90)
at org.briarproject.briar.android.fragment.BaseFragment$$Lambda$0.run(Unknown Source)
at android.os.Handler.handleCallback(Handler.java:739)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:145)
at android.app.ActivityThread.main(ActivityThread.java:6946)
at java.lang.reflect.Method.invoke(Native Method)
at java.lang.reflect.Method.invoke(Method.java:372)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1404)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1199)
```
Looks like we should check the lifecycle state in `BaseActivity#showNextFragment()` or `KeyAgreementActivity#showErrorFragment()`.Android 1.1Torsten GroteTorsten Grotehttps://code.briarproject.org/briar/briar/-/issues/1421Contact list is shown when opening app during DB migration2022-05-26T15:44:20ZakwizgranContact list is shown when opening app during DB migrationSteps to reproduce:
* Use the long-migration branch, which adds a fake 60-second DB migration at every startup
* Sign into Briar
* While the fake migration is running, send Briar to the background or turn the screen off
* Relaunch Briar...Steps to reproduce:
* Use the long-migration branch, which adds a fake 60-second DB migration at every startup
* Sign into Briar
* While the fake migration is running, send Briar to the background or turn the screen off
* Relaunch Briar from the status bar or lock screen notification (on some Android versions this requires opening the notification drawer)
* Expected: The migration screen is shown
* Actual: The contact list is shown with a progress wheel. The nav drawer can be opened. Backing out of the contact list or signing out via the nav drawer shows the migration screen againAndroid 1.1Torsten GroteTorsten Grotehttps://code.briarproject.org/briar/briar/-/issues/1420TorPlugin not updating status when changing setting2018-10-15T13:04:37ZTorsten GroteTorPlugin not updating status when changing settingThe TorPlugin is not updating its status when bridges are enabled or disabled - the icon still shows the plugin as being connected. We should reset the status when enabling/disabling bridges and wait for Tor to reconnect.The TorPlugin is not updating its status when bridges are enabled or disabled - the icon still shows the plugin as being connected. We should reset the status when enabling/disabling bridges and wait for Tor to reconnect.Android 1.1Torsten GroteTorsten Grotehttps://code.briarproject.org/briar/briar/-/issues/1418Managing pluggable transports2019-02-19T17:38:04ZTorsten GroteManaging pluggable transportsThis ticket is to write code for installing the transport, starting if it necessary, activate it based on the user's location, etc.This ticket is to write code for installing the transport, starting if it necessary, activate it based on the user's location, etc.Android 1.1Torsten GroteTorsten Grotehttps://code.briarproject.org/briar/briar/-/issues/1417Integrate pluggable transport binaries into Briar2018-12-19T12:23:55ZTorsten GroteIntegrate pluggable transport binaries into BriarThe artifact generated by #1416 should be integrated in Briar, so obfs4 bridges can be used whenever needed by the user's location.The artifact generated by #1416 should be integrated in Briar, so obfs4 bridges can be used whenever needed by the user's location.Torsten GroteTorsten Grote