briar issueshttps://code.briarproject.org/groups/briar/-/issues2019-04-11T14:05:30Zhttps://code.briarproject.org/briar/briar-spec/-/issues/2Update BQP spec to version 42019-04-11T14:05:30ZakwizgranUpdate BQP spec to version 4Protocol versioning, crypto labels, key derivation, confirmation records, maybe encoding of transport properties?Protocol versioning, crypto labels, key derivation, confirmation records, maybe encoding of transport properties?akwizgranakwizgranhttps://code.briarproject.org/briar/briar-spec/-/issues/1Update BTP spec to version 42019-04-11T14:05:07ZakwizgranUpdate BTP spec to version 4Protocol versioning, key derivation labels.Protocol versioning, key derivation labels.akwizgranakwizgranhttps://code.briarproject.org/briar/briar/-/issues/1129Send message on ctrl+return2018-01-07T11:49:33ZsbkafSend message on ctrl+returnhttps://code.briarproject.org/briar/briar/-/issues/1127All notifications should use notification channels2017-12-07T10:45:16ZakwizgranAll notifications should use notification channelsNow that we're targetting API 26, it looks like we need to use notification channels for all our notifications, not just the ongoing notification.Now that we're targetting API 26, it looks like we need to use notification channels for all our notifications, not just the ongoing notification.Android Beta 2akwizgranakwizgranhttps://code.briarproject.org/briar/briar/-/issues/1126Buttons on external link warning aren't visible in landscape mode2019-03-08T14:24:49ZakwizgranButtons on external link warning aren't visible in landscape modeFeedback from a user: "I just tried opening a link from an RSS feed. The pop-up warning me that this could be used to identify me is a bit higher than wide, and since I was using my phone in landscape mode, the buttons at the bottom of t...Feedback from a user: "I just tried opening a link from an RSS feed. The pop-up warning me that this could be used to identify me is a bit higher than wide, and since I was using my phone in landscape mode, the buttons at the bottom of the pop-up were off-screen, and I only understood what was going on after several attempts, and turning the phone. It would be good if that pop-up could adjust its aspect ratio to the screen."Android 1.1Torsten GroteTorsten Grotehttps://code.briarproject.org/briar/briar/-/issues/1125"Failed to inflate ColorStateList" when showing setup wizard2020-11-19T04:51:10Zakwizgran"Failed to inflate ColorStateList" when showing setup wizardThe Huawei Ascend Y330 logs the following stacktrace when showing the new setup wizard:
```
12-01 12:48:16.402 19705-19705/org.briarproject.briar.beta.debug E/AppCompatResources: Failed to inflate ColorStateList, leaving it to the frame...The Huawei Ascend Y330 logs the following stacktrace when showing the new setup wizard:
```
12-01 12:48:16.402 19705-19705/org.briarproject.briar.beta.debug E/AppCompatResources: Failed to inflate ColorStateList, leaving it to the framework
java.lang.UnsupportedOperationException: Can't convert to color: type=0x2
at android.content.res.TypedArray.getColor(TypedArray.java:334)
at android.support.v7.content.res.AppCompatColorStateListInflater.inflate(AppCompatColorStateListInflater.java:114)
at android.support.v7.content.res.AppCompatColorStateListInflater.createFromXmlInner(AppCompatColorStateListInflater.java:88)
at android.support.v7.content.res.AppCompatColorStateListInflater.createFromXml(AppCompatColorStateListInflater.java:67)
at android.support.v7.content.res.AppCompatResources.inflateColorStateList(AppCompatResources.java:116)
at android.support.v7.content.res.AppCompatResources.getColorStateList(AppCompatResources.java:74)
at android.support.v7.widget.TintTypedArray.getColorStateList(TintTypedArray.java:170)
at android.support.v7.widget.AppCompatTextHelper.onSetTextAppearance(AppCompatTextHelper.java:296)
at android.support.v7.widget.AppCompatTextView.setTextAppearance(AppCompatTextView.java:160)
at android.support.v4.widget.TextViewCompat$TextViewCompatBaseImpl.setTextAppearance(TextViewCompat.java:155)
at android.support.v4.widget.TextViewCompat.setTextAppearance(TextViewCompat.java:476)
at android.support.design.widget.TextInputLayout.setErrorEnabled(TextInputLayout.java:632)
at android.support.design.widget.TextInputLayout.<init>(TextInputLayout.java:255)
at android.support.design.widget.TextInputLayout.<init>(TextInputLayout.java:185)
at java.lang.reflect.Constructor.constructNative(Native Method)
at java.lang.reflect.Constructor.newInstance(Constructor.java:417)
at android.view.LayoutInflater.createView(LayoutInflater.java:587)
at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:687)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:746)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:749)
at android.view.LayoutInflater.inflate(LayoutInflater.java:489)
at android.view.LayoutInflater.inflate(LayoutInflater.java:396)
at org.briarproject.briar.android.login.AuthorNameFragment.onCreateView(AuthorNameFragment.java:36)
at android.support.v4.app.Fragment.performCreateView(Fragment.java:2261)
at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1419)
at android.support.v4.app.FragmentManagerImpl.moveFragmentToExpectedState(FragmentManager.java:1750)
at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1819)
at android.support.v4.app.BackStackRecord.executeOps(BackStackRecord.java:797)
at android.support.v4.app.FragmentManagerImpl.executeOps(FragmentManager.java:2590)
at android.support.v4.app.FragmentManagerImpl.executeOpsTogether(FragmentManager.java:2377)
at android.support.v4.app.FragmentManagerImpl.removeRedundantOperationsAndExecute(FragmentManager.java:2332)
at android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:2239)
at android.support.v4.app.FragmentManagerImpl.dispatchStateChange(FragmentManager.java:3231)
at android.support.v4.app.FragmentManagerImpl.dispatchActivityCreated(FragmentManager.java:3181)
at android.support.v4.app.FragmentController.dispatchActivityCreated(FragmentController.java:192)
at android.support.v4.app.FragmentActivity.onStart(FragmentActivity.java:572)
at android.support.v7.app.AppCompatActivity.onStart(AppCompatActivity.java:177)
at org.briarproject.briar.android.activity.BaseActivity.onStart(BaseActivity.java:95)
at android.app.Instrumentation.callActivityOnStart(Instrumentation.java:1167)
at android.app.Activity.performStart(Activity.java:5221)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2337)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2416)
at android.app.ActivityThread.access$600(ActivityThread.java:166)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1379)
at android.os.Handler.dispatchMessage(Handler.java:107)
at android.os.Looper.loop(Looper.java:194)
```
The same exception is logged for the two TextInputLayouts in the PasswordFragment.
There's no apparent issue with the appearance or behaviour of the TextInputLayouts, so this may be harmless.https://code.briarproject.org/briar/briar/-/issues/1124Startup Crash on Android 8.12017-12-01T17:22:40ZTorsten GroteStartup Crash on Android 8.1```
E/AndroidRuntime: FATAL EXCEPTION: main
Process: org.briarproject.briar.beta.debug, PID: 13836
android.app.RemoteServiceException: Bad notification for startFo...```
E/AndroidRuntime: FATAL EXCEPTION: main
Process: org.briarproject.briar.beta.debug, PID: 13836
android.app.RemoteServiceException: Bad notification for startForeground: java.lang.RuntimeException: invalid service notification: Notification(channel=test pri=-2 contentView=null vibrate=null sound=null defaults=0x0 flags=0x42 color=0xff2d3e50 category=service vis=SECRET)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1768)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loop(Looper.java:164)
at android.app.ActivityThread.main(ActivityThread.java:6494)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:438)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:807)
```
Looks like we need to use `NotificationChannel`s now:
https://stackoverflow.com/questions/47531742/startforeground-fail-after-upgrade-to-android-8-1Android Beta 2Torsten GroteTorsten Grotehttps://code.briarproject.org/briar/briar/-/issues/1123Two Briar processes2020-11-19T04:51:47ZakwizgranTwo Briar processesA user sent a log that shows two Briar processes starting at almost the same time. Only one of the processes continues logging past the sign in stage.
```
10-18 23:34:46.295 I/BriarApplicationImpl(12758): Created
10-18 23:34:46.365 I/Br...A user sent a log that shows two Briar processes starting at almost the same time. Only one of the processes continues logging past the sign in stage.
```
10-18 23:34:46.295 I/BriarApplicationImpl(12758): Created
10-18 23:34:46.365 I/BriarApplicationImpl(12786): Created
10-18 23:34:46.373 I/CryptoComponentImpl(12758): Default SecureRandom: AndroidOpenSSL SHA1PRNG
10-18 23:34:46.395 E/WifiManager(12758): mWifiServiceMessenger == null
10-18 23:34:46.408 I/CryptoComponentImpl(12786): Default SecureRandom: AndroidOpenSSL SHA1PRNG
10-18 23:34:46.417 E/WifiManager(12786): mWifiServiceMessenger == null
10-18 23:34:46.501 I/CryptoComponentImpl(12786): Installed SecureRandom: LinuxPRNG SHA1PRNG
10-18 23:34:46.501 I/CryptoComponentImpl(12758): Installed SecureRandom: LinuxPRNG SHA1PRNG
10-18 23:34:46.528 I/LifecycleManagerImpl(12786): Registering executor TimeLoggingExecutor
10-18 23:34:46.528 I/LifecycleManagerImpl(12758): Registering executor TimeLoggingExecutor
10-18 23:34:46.531 I/LifecycleManagerImpl(12758): Registering executor ThreadPoolExecutor
10-18 23:34:46.531 I/LifecycleManagerImpl(12786): Registering executor ThreadPoolExecutor
10-18 23:34:46.539 I/LifecycleManagerImpl(12758): Registering executor DelegatedScheduledExecutorService
10-18 23:34:46.539 I/LifecycleManagerImpl(12786): Registering executor DelegatedScheduledExecutorService
10-18 23:34:46.539 I/LifecycleManagerImpl(12758): Registering service KeyManagerImpl
10-18 23:34:46.539 I/LifecycleManagerImpl(12786): Registering service KeyManagerImpl
10-18 23:34:46.540 I/LifecycleManagerImpl(12758): Registering executor TimeLoggingExecutor
10-18 23:34:46.540 I/LifecycleManagerImpl(12786): Registering executor TimeLoggingExecutor
10-18 23:34:46.549 I/LifecycleManagerImpl(12758): Registering client TransportPropertyManagerImpl
10-18 23:34:46.549 I/LifecycleManagerImpl(12786): Registering client TransportPropertyManagerImpl
10-18 23:34:46.549 I/LifecycleManagerImpl(12758): Registering service PluginManagerImpl
10-18 23:34:46.549 I/LifecycleManagerImpl(12786): Registering service PluginManagerImpl
10-18 23:34:46.550 I/LifecycleManagerImpl(12786): Registering service ValidationManagerImpl
10-18 23:34:46.550 I/LifecycleManagerImpl(12758): Registering service ValidationManagerImpl
10-18 23:34:46.554 I/LifecycleManagerImpl(12758): Registering client BlogManagerImpl
10-18 23:34:46.554 I/LifecycleManagerImpl(12786): Registering client BlogManagerImpl
10-18 23:34:46.556 I/LifecycleManagerImpl(12758): Registering client FeedManagerImpl
10-18 23:34:46.556 I/LifecycleManagerImpl(12786): Registering client FeedManagerImpl
10-18 23:34:46.563 I/LifecycleManagerImpl(12758): Registering client GroupInvitationManagerImpl
10-18 23:34:46.563 I/LifecycleManagerImpl(12786): Registering client GroupInvitationManagerImpl
10-18 23:34:46.564 I/LifecycleManagerImpl(12758): Registering client MessagingManagerImpl
10-18 23:34:46.564 I/LifecycleManagerImpl(12786): Registering client MessagingManagerImpl
10-18 23:34:46.567 I/LifecycleManagerImpl(12786): Registering client ForumSharingManagerImpl
10-18 23:34:46.567 I/LifecycleManagerImpl(12758): Registering client ForumSharingManagerImpl
10-18 23:34:46.568 I/LifecycleManagerImpl(12758): Registering client BlogSharingManagerImpl
10-18 23:34:46.568 I/LifecycleManagerImpl(12786): Registering client BlogSharingManagerImpl
10-18 23:34:46.571 I/LifecycleManagerImpl(12758): Registering client IntroductionManagerImpl
10-18 23:34:46.571 I/LifecycleManagerImpl(12786): Registering client IntroductionManagerImpl
10-18 23:34:46.575 I/LifecycleManagerImpl(12786): Registering service AndroidNotificationManagerImpl
10-18 23:34:46.575 I/LifecycleManagerImpl(12758): Registering service AndroidNotificationManagerImpl
10-18 23:34:47.354 I/BriarRecyclerView(12758): Adding Handler Callback
10-18 23:34:47.389 I/TextInputLayout(12758): EditText added is not a TextInputEditText. Please switch to using that class instead.
10-18 23:34:48.111 I/BriarRecyclerView(12758): Removing Handler Callback
10-18 23:34:52.446 I/BriarRecyclerView(12758): Adding Handler Callback
10-18 23:34:52.533 I/BriarService(12758): Created
10-18 23:34:52.561 I/LifecycleManagerImpl(12758): Starting services
10-18 23:34:56.318 I/LifecycleManagerImpl(12758): Reopening database took 3757 ms
10-18 23:34:56.323 I/LifecycleManagerImpl(12758): Starting client TransportPropertyManagerImpl took 3 ms
10-18 23:34:56.323 I/IdentityManagerImpl(12758): Local author loaded
10-18 23:34:56.324 I/LifecycleManagerImpl(12758): Starting client BlogManagerImpl took 1 ms
10-18 23:34:56.325 I/LifecycleManagerImpl(12758): Starting client FeedManagerImpl took 1 ms
10-18 23:34:56.326 I/LifecycleManagerImpl(12758): Starting client GroupInvitationManagerImpl took 0 ms
10-18 23:34:56.326 I/LifecycleManagerImpl(12758): Starting client MessagingManagerImpl took 0 ms
10-18 23:34:56.327 I/LifecycleManagerImpl(12758): Starting client ForumSharingManagerImpl took 0 ms
10-18 23:34:56.623 I/LifecycleManagerImpl(12758): Starting client BlogSharingManagerImpl took 296 ms
10-18 23:34:56.624 I/LifecycleManagerImpl(12758): Starting client IntroductionManagerImpl took 1 ms
10-18 23:34:56.696 I/LifecycleManagerImpl(12758): Starting service KeyManagerImpl took 71 ms
10-18 23:34:56.696 I/PluginManagerImpl(12758): Starting simplex plugins
10-18 23:34:56.696 I/PluginManagerImpl(12758): Starting duplex plugins
10-18 23:34:56.718 I/LifecycleManagerImpl(12758): Starting service PluginManagerImpl took 22 ms
10-18 23:34:56.720 I/LifecycleManagerImpl(12758): Starting service ValidationManagerImpl took 1 ms
10-18 23:34:56.723 I/TorPlugin(12758): Starting Tor
10-18 23:34:56.727 I/PluginManagerImpl(12758): Starting plugin org.briarproject.bramble.lan took 7 ms
10-18 23:34:56.753 I/AndroidLanTcpPlugin(12758): Not connected to Wi-Fi
10-18 23:34:56.757 I/NavDrawerControllerImpl(12758): TransportDisabledEvent: org.briarproject.bramble.lan
10-18 23:34:56.764 I/LifecycleManagerImpl(12758): Starting service AndroidNotificationManagerImpl took 43 ms
10-18 23:34:56.764 I/DroidtoothPlugin(12758): Not enabling Bluetooth
10-18 23:34:56.764 I/PluginManagerImpl(12758): Starting plugin org.briarproject.bramble.bluetooth took 47 ms
10-18 23:34:56.892 I/ContactListFragment(12758): Full load took 573 ms
```
The user reported an issue that may be related:
"I think there is a bug, before I introduce one of my phone's id to another of my brother's phone installed briar app on android, the message didn't go through, it does not matter, wifi, bluetooth or internet, my phone is xiaomi redmi note 2 on android lollipop, while my brother's phone is on htc mate on android marshmallow. I have to reboot both phone, which is now works without problem, could you check the 'Introduce' module?"
* Android version: 5.0.2
* Phone model: Redmi Note 2 (hermes)
* Briar version: 0.16.10 (ef2286a)https://code.briarproject.org/briar/briar/-/issues/1122Different identities in different contexts2020-11-19T04:52:52ZakwizgranDifferent identities in different contextsA user asked for the ability to "change my name or have different names in different contexts".A user asked for the ability to "change my name or have different names in different contexts".https://code.briarproject.org/briar/briar/-/issues/1121Possible bypass of tapjacking protection?2020-11-19T04:55:20ZakwizgranPossible bypass of tapjacking protection?A user reported what sounds like a way to bypass tapjacking protection: "When the app notifies for an overlay, I can bypass that by pressing continue and then redoing what I wanted to do."
After the dialog is dismissed we should continu...A user reported what sounds like a way to bypass tapjacking protection: "When the app notifies for an overlay, I can bypass that by pressing continue and then redoing what I wanted to do."
After the dialog is dismissed we should continue to block touch events that have passed through the overlay. I'll contact the user to clarify what's happening.https://code.briarproject.org/briar/briar/-/issues/1120Crash when removing shutdown hook2017-12-05T16:07:33ZakwizgranCrash when removing shutdown hook* Android version: 7.0
* Phone model: SM-G930F (heroltexx)
* Briar version: 0.16.11 (1a83b2c)
Stack trace:
```
java.lang.IllegalStateException: VM already shutting down
at java.lang.Runtime.removeShutdownHook(Runtime.java:320)
...* Android version: 7.0
* Phone model: SM-G930F (heroltexx)
* Briar version: 0.16.11 (1a83b2c)
Stack trace:
```
java.lang.IllegalStateException: VM already shutting down
at java.lang.Runtime.removeShutdownHook(Runtime.java:320)
at org.briarproject.bramble.lifecycle.ShutdownManagerImpl.removeShutdownHook(ShutdownManagerImpl.java:52)
at org.briarproject.bramble.db.DatabaseComponentImpl.close(DatabaseComponentImpl.java:125)
at org.briarproject.bramble.db.DatabaseComponentImpl$1.run(DatabaseComponentImpl.java:110)
at java.lang.Thread.run(Thread.java:762)
```Android Beta 2akwizgranakwizgranhttps://code.briarproject.org/briar/briar/-/issues/1118Cryptocurrency payments2023-04-24T12:23:55ZakwizgranCryptocurrency paymentsUsers have asked for the ability to make payments with Monero or Taler.Users have asked for the ability to make payments with Monero or Taler.https://code.briarproject.org/briar/briar/-/issues/1117Button doesn't send message in landscape mode2018-06-11T10:57:20ZakwizgranButton doesn't send message in landscape modeWhen editing a message in landscape mode, the text field and keyboard expand to fill the screen. A "done" button is shown next to the text field, but it doesn't send the message or have any other effect. Closing the soft keyboard shows t...When editing a message in landscape mode, the text field and keyboard expand to fill the screen. A "done" button is shown next to the text field, but it doesn't send the message or have any other effect. Closing the soft keyboard shows the send button, which works as expected.
The same thing happens for blog posts, but not for the password screen, where pressing "done" submits the password.https://code.briarproject.org/briar/briar/-/issues/1116NPE when pressing back button in NavDrawerActivity2018-02-01T17:22:44ZakwizgranNPE when pressing back button in NavDrawerActivity* Android version: 4.4.2
* Phone model: GT-I9506 (ks01ltexx)
* Briar version: 0.16.10 (ef2286a)
Stack trace:
```
java.lang.NullPointerException
at android.os.Parcel.readException(Parcel.java:1471)
at android.os.Parcel.re...* Android version: 4.4.2
* Phone model: GT-I9506 (ks01ltexx)
* Briar version: 0.16.10 (ef2286a)
Stack trace:
```
java.lang.NullPointerException
at android.os.Parcel.readException(Parcel.java:1471)
at android.os.Parcel.readException(Parcel.java:1419)
at android.app.ActivityManagerProxy.startActivity(ActivityManagerNative.java:2309)
at android.app.Instrumentation.execStartActivity(Instrumentation.java:1437)
at android.app.Activity.startActivityForResult(Activity.java:3511)
at android.app.Activity.startActivityForResult(Activity.java:3472)
at android.support.v4.app.FragmentActivity.startActivityForResult(FragmentActivity.java:843)
at android.app.Activity.startActivity(Activity.java:3714)
at android.app.Activity.startActivity(Activity.java:3682)
at org.briarproject.briar.android.navdrawer.NavDrawerActivity.onBackPressed(NavDrawerActivity.java:197)
at android.app.Activity.onKeyUp(Activity.java:2274)
at android.view.KeyEvent.dispatch(KeyEvent.java:2985)
at android.app.Activity.dispatchKeyEvent(Activity.java:2508)
at android.support.v7.app.AppCompatActivity.dispatchKeyEvent(AppCompatActivity.java:531)
at android.support.v7.view.WindowCallbackWrapper.dispatchKeyEvent(WindowCallbackWrapper.java:50)
at android.support.v7.app.AppCompatDelegateImplBase$AppCompatWindowCallbackBase.dispatchKeyEvent(AppCompatDelegateImplBase.java:241)
at android.support.v7.view.WindowCallbackWrapper.dispatchKeyEvent(WindowCallbackWrapper.java:50)
at com.android.internal.policy.impl.PhoneWindow$DecorView.dispatchKeyEvent(PhoneWindow.java:2174)
at android.view.ViewRootImpl$ViewPostImeInputStage.processKeyEvent(ViewRootImpl.java:4492)
at android.view.ViewRootImpl$ViewPostImeInputStage.onProcess(ViewRootImpl.java:4459)
at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:4024)
at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:4078)
at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:4047)
at android.view.ViewRootImpl$AsyncInputStage.forward(ViewRootImpl.java:4158)
at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:4055)
at android.view.ViewRootImpl$AsyncInputStage.apply(ViewRootImpl.java:4215)
at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:4024)
at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:4078)
at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:4047)
at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:4055)
at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:4024)
at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:4078)
at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:4047)
at android.view.ViewRootImpl$AsyncInputStage.forward(ViewRootImpl.java:4191)
at android.view.ViewRootImpl$ImeInputStage.onFinishedInputEvent(ViewRootImpl.java:4351)
at android.view.inputmethod.InputMethodManager$PendingEvent.run(InputMethodManager.java:2257)
at android.view.inputmethod.InputMethodManager.invokeFinishedInputEventCallback(InputMethodManager.java:1907)
at android.view.inputmethod.InputMethodManager.finishedInputEvent(InputMethodManager.java:1898)
at android.view.inputmethod.InputMethodManager$ImeInputEventSender.onInputEventFinished(InputMethodManager.java:2234)
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:5506)
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:1265)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1081)
at dalvik.system.NativeStart.main(Native Method)
```Android Beta 2Torsten GroteTorsten Grotehttps://code.briarproject.org/briar/briar/-/issues/1115Edit unsent messages2020-11-19T13:31:22ZakwizgranEdit unsent messagesA user asked for the ability to edit messages that haven't been sent yet.
Related to #420, maybe a duplicate depending on the user's intent.A user asked for the ability to edit messages that haven't been sent yet.
Related to #420, maybe a duplicate depending on the user's intent.https://code.briarproject.org/briar/briar/-/issues/1114Show when user feedback has been received2021-07-06T10:03:53ZakwizgranShow when user feedback has been receivedA user asked to be shown when their feedback was received.A user asked to be shown when their feedback was received.Adapt to changes in the Android platformTorsten GroteTorsten Grote2021-04-30https://code.briarproject.org/briar/briar/-/issues/1113Private replies to group posts2020-11-19T13:10:03ZakwizgranPrivate replies to group postsA user asked for the ability to reply privately to messages in private groups.
Related to #43, but easier to achieve.A user asked for the ability to reply privately to messages in private groups.
Related to #43, but easier to achieve.https://code.briarproject.org/briar/briar/-/issues/1112Crash when showing screen filter dialog2017-12-07T17:54:42ZakwizgranCrash when showing screen filter dialogStack trace:
```
java.lang.IllegalStateException: Can not perform this action after onSaveInstanceState
at android.support.v4.app.FragmentManagerImpl.checkStateLoss(FragmentManager.java:1493)
at android.support.v4.app.Fr...Stack trace:
```
java.lang.IllegalStateException: Can not perform this action after onSaveInstanceState
at android.support.v4.app.FragmentManagerImpl.checkStateLoss(FragmentManager.java:1493)
at android.support.v4.app.FragmentManagerImpl.enqueueAction(FragmentManager.java:1511)
at android.support.v4.app.BackStackRecord.commitInternal(BackStackRecord.java:634)
at android.support.v4.app.BackStackRecord.commit(BackStackRecord.java:613)
at android.support.v4.app.DialogFragment.show(DialogFragment.java:139)
at org.briarproject.briar.android.activity.BaseActivity.showScreenFilterWarning(BaseActivity.java:123)
at org.briarproject.briar.android.activity.BaseActivity.onTapFiltered(BaseActivity.java:225)
at org.briarproject.briar.android.widget.TapSafeFrameLayout.onFilterTouchEventForSecurity(TapSafeFrameLayout.java:44)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2014)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2401)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2091)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2401)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2091)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2401)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2091)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2401)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2091)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2401)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2091)
at com.android.internal.policy.impl.PhoneWindow$DecorView.superDispatchTouchEvent(PhoneWindow.java:2306)
at com.android.internal.policy.impl.PhoneWindow.superDispatchTouchEvent(PhoneWindow.java:1575)
at android.app.Activity.dispatchTouchEvent(Activity.java:2470)
at android.support.v7.view.WindowCallbackWrapper.dispatchTouchEvent(WindowCallbackWrapper.java:60)
at android.support.v7.view.WindowCallbackWrapper.dispatchTouchEvent(WindowCallbackWrapper.java:60)
at com.android.internal.policy.impl.PhoneWindow$DecorView.dispatchTouchEvent(PhoneWindow.java:2254)
at android.view.View.dispatchPointerEvent(View.java:7888)
at android.view.ViewRootImpl.deliverPointerEvent(ViewRootImpl.java:3977)
at android.view.ViewRootImpl.deliverInputEvent(ViewRootImpl.java:3861)
at android.view.ViewRootImpl.doProcessInputEvents(ViewRootImpl.java:5101)
at android.view.ViewRootImpl.enqueueInputEvent(ViewRootImpl.java:5080)
at android.view.ViewRootImpl$WindowInputEventReceiver.onInputEvent(ViewRootImpl.java:5179)
at android.view.InputEventReceiver.dispatchInputEvent(InputEventReceiver.java:185)
at android.os.MessageQueue.nativePollOnce(Native Method)
at android.os.MessageQueue.next(MessageQueue.java:125)
at android.os.Looper.loop(Looper.java:138)
at android.app.ActivityThread.main(ActivityThread.java:5365)
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:1102)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:869)
at dalvik.system.NativeStart.main(Native Method)
```Android Beta 2akwizgranakwizgranhttps://code.briarproject.org/briar/briar/-/issues/1111Show latest message in contact list2020-11-19T13:10:24ZakwizgranShow latest message in contact listA user asked to be able to see the latest message from each contact in the contact list, as well as the time when the message was sent.A user asked to be able to see the latest message from each contact in the contact list, as well as the time when the message was sent.https://code.briarproject.org/briar/briar/-/issues/1110Signatures use wrong labels2017-11-30T19:47:55ZakwizgranSignatures use wrong labelsThe blog, forum, private group and introduction clients are using the wrong labels for their signatures. The signatures use a label of the form `CLIENT_ID + "/FOO"`, which results in the string `org.briarproject.bramble.sync.ClientId@abc...The blog, forum, private group and introduction clients are using the wrong labels for their signatures. The signatures use a label of the form `CLIENT_ID + "/FOO"`, which results in the string `org.briarproject.bramble.sync.ClientId@abcd1234/FOO`, where `abcd1234` is the hash code of the ClientId object, because ClientId inherits its `toString()` implementation from Object.
The ClientId object has the same hash code as the string it wraps, which is the same across devices, so the signatures will verify as long as the verifier has the same bug.
Fortunately we're about to break compatibility with the beta series, so we can fix this cleanly.Android 1.0akwizgranakwizgran