briar issueshttps://code.briarproject.org/briar/briar/-/issues2020-11-19T04:51:10Zhttps://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/1119More information about message status2020-11-19T12:54:43ZakwizgranMore information about message statusA user asked for more information about message status "(sent/unsent/when/scheduled next try/force it...)".A user asked for more information about message status "(sent/unsent/when/scheduled next try/force it...)".https://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/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.0akwizgranakwizgranhttps://code.briarproject.org/briar/briar/-/issues/1109Uninstalling Panic Action Requires User Interaction on Latest Android2018-09-28T09:57:20ZTorsten GroteUninstalling Panic Action Requires User Interaction on Latest AndroidIt seems an app can no longer uninstall itself without user interaction. At least on Android O, the user needs to confirm the uninstall. In a panic situation, there might be no time for that and actions should normally be completely auto...It seems an app can no longer uninstall itself without user interaction. At least on Android O, the user needs to confirm the uninstall. In a panic situation, there might be no time for that and actions should normally be completely automatic.
Maybe we should just remove the uninstall option then?Android 1.1Torsten GroteTorsten Grotehttps://code.briarproject.org/briar/briar/-/issues/1108Create Docker image for CI2018-06-15T14:09:59ZakwizgranCreate Docker image for CIWe're using F-Droid's docker image for the GitLab CI runners, but it doesn't have everything we need, such as the Java 6 standard library for compiling the Java modules. Create a custom image with everything we need.We're using F-Droid's docker image for the GitLab CI runners, but it doesn't have everything we need, such as the Java 6 standard library for compiling the Java modules. Create a custom image with everything we need.Torsten GroteTorsten Grotehttps://code.briarproject.org/briar/briar/-/issues/1107Contact List Sorting (message received, online status)2020-11-19T13:30:41ZTorsten GroteContact List Sorting (message received, online status)Having now ~30 contacts reveals some small inconveniences that only happen with a larger contact list.
For example, the list is currently sorted by the time messages have been created. So when you finally manage to get an old message sy...Having now ~30 contacts reveals some small inconveniences that only happen with a larger contact list.
For example, the list is currently sorted by the time messages have been created. So when you finally manage to get an old message synced, the unread message bubble and the contact might already be way down, so you overlook the new messages. Sorting the list by the time a message was received might help with that.
Also, when you have many contacts, some might be inactive and never come online. Usually, only a small subset of users is online and users have a higher interest in knowing which users are online and can be communicated with right away. Taking a users online status into account for sorting or offering the option to hide offline users might improve things here.https://code.briarproject.org/briar/briar/-/issues/1106User unable to add contacts to group after creation2022-04-17T11:32:14ZTorsten GroteUser unable to add contacts to group after creationAt an event last week, I was testing Briar with a few people and noticed that someone was unable to add contacts to a group after creating it.
In the past, the "Add Users" screen came up as part of the creation process. We changed this ...At an event last week, I was testing Briar with a few people and noticed that someone was unable to add contacts to a group after creating it.
In the past, the "Add Users" screen came up as part of the creation process. We changed this for technical reasons if I remember correctly. So after a creating the group, this is what the user currently sees:
![device-2017-11-20-120338](/uploads/88a8281b0f72bd3e9ec5b21a12d539a2/device-2017-11-20-120338.png)
So there's also no empty state message with a hint, because the first join message is always there.
The user I observed tried everything they could and I didn't help. They clicked everywhere, but the share icon. So they failed the task and gave up. Afterwards, I asked why they didn't try the share icon and apparently the expectation is that this is always used to share something from the app with other apps.
The user suggested to change the UI as follows as this would make it clearer how to add users:
![device-2017-11-20-120705](/uploads/08b4bc666763fff00c18e464baac9e9f/device-2017-11-20-120705.png)
To increase the chance of success, we could add the same button to the member list screen.https://code.briarproject.org/briar/briar/-/issues/1105Support IPv6 for TCP plugins2020-07-30T10:16:05ZakwizgranSupport IPv6 for TCP pluginsThe TCP plugins are currently restricted to IPv4 addresses. This was done back in the days when we only supported a single IP:port, to ensure we didn't share an IPv6 address with an IPv4-only contact. Now that we share multiple IP:ports,...The TCP plugins are currently restricted to IPv4 addresses. This was done back in the days when we only supported a single IP:port, to ensure we didn't share an IPv6 address with an IPv4-only contact. Now that we share multiple IP:ports, we can include IPv6 addresses.Android 1.2akwizgranakwizgran