briar issueshttps://code.briarproject.org/briar/briar/-/issues2020-01-15T11:32:36Zhttps://code.briarproject.org/briar/briar/-/issues/1182Encrypt DB key with hardware-backed key when available2020-01-15T11:32:36ZakwizgranEncrypt DB key with hardware-backed key when availableThe database key is encrypted with a key derived from the user's password. This is vulnerable to brute force attacks; scrypt makes them more expensive but doesn't prevent them.
When a hardware key store is available, we could add anothe...The database key is encrypted with a key derived from the user's password. This is vulnerable to brute force attacks; scrypt makes them more expensive but doesn't prevent them.
When a hardware key store is available, we could add another layer of security by encrypting the database key with a hardware-backed key as well as the password-derived key.
https://nelenkov.blogspot.co.uk/2013/08/credential-storage-enhancements-android-43.html
https://nelenkov.blogspot.co.uk/2015/06/keystore-redesign-in-android-m.html
~~https://developer.android.com/preview/features/security.html#hardware-security-module~~
https://developer.android.com/training/articles/keystore.html
Related to #257.akwizgranakwizgranhttps://code.briarproject.org/briar/briar/-/issues/1682No obvious way to tell which version of briar I am running2020-01-08T17:26:40Zcano wigNo obvious way to tell which version of briar I am runningI tried digging everywhere but I couldn't find which version of briar I am running from the app. I could see it only through f-droid. Every app has an obvious way to see which version you run, usually in the 'about' page. I suggest to ad...I tried digging everywhere but I couldn't find which version of briar I am running from the app. I could see it only through f-droid. Every app has an obvious way to see which version you run, usually in the 'about' page. I suggest to add the version number to briar next to the logo and BRIAR.
So by clicking on the 3 lines you open the side bar, see the logo, BRIAR and version.
Example: Logo BRIAR 1.2.4https://code.briarproject.org/briar/briar/-/issues/1636Compression of small images throws exception2020-01-08T16:06:41ZTorsten GroteCompression of small images throws exceptionWhen sending images on Android 10 (did not test other versions) smaller than 32KB, the app shows an error and an `IOException` is thrown.
```java
if (!bitmap.compress(JPEG, quality, out))
throw new I...When sending images on Android 10 (did not test other versions) smaller than 32KB, the app shows an error and an `IOException` is thrown.
```java
if (!bitmap.compress(JPEG, quality, out))
throw new IOException();
```
Sending images larger than 32 KB works just fine.Android 1.3Torsten GroteTorsten Grotehttps://code.briarproject.org/briar/briar/-/issues/1681Bug when signing in to briar2019-12-21T18:12:50ZjomocuBug when signing in to briarBriar version: 1.2.4
Once the session has started, the application does not allow creating new forums, new blogs, and new groups.
Bug solutions:
- Turning the screen resolves the error.
- Pressing on configuration and going back to sol...Briar version: 1.2.4
Once the session has started, the application does not allow creating new forums, new blogs, and new groups.
Bug solutions:
- Turning the screen resolves the error.
- Pressing on configuration and going back to solve the error.
- When closing and opening the application without logging in, the error is also solved.https://code.briarproject.org/briar/briar/-/issues/1679Ephemeral messages and self cleaning2019-12-20T20:08:39ZjomocuEphemeral messages and self cleaningIt would be good to add an option to be able to automatically delete the messages of a particular converacion every x time.
This function would delete the messages every x time for all the participants of the conversation.
The function s...It would be good to add an option to be able to automatically delete the messages of a particular converacion every x time.
This function would delete the messages every x time for all the participants of the conversation.
The function should be available in private conversations and in groups.
On the other hand, in the general configuration of the application, a self-cleaning option could be added, in order to automatically erase the contents of the oldest chats.
And add some extra options, such as these:
** Cleaning of messages for recipients **
- "Delete messages for the receiver" (True / False)
** Cleaning filters **
- "Do not self-delete Files" (True / False)
- "Do not self-delete Videos" (True / False)
- "Do not self-delete Images" (True / False)
- "Do not self-remove Sounds" (True / False)
- "Do not self-remove Gifs" (True / False)
- "Do not self-remove Audios" (True / False)
- "Do not self-delete Video Messages" (True / False)
- "Do not self-delete Links (URL)" (True / False)
I hope you like the suggestion, regardshttps://code.briarproject.org/briar/briar/-/issues/1656Explain better why messages can not be deleted2019-12-10T12:38:35ZTorsten GroteExplain better why messages can not be deletedCurrently, we show a long, but still incomplete list of reasons why not all messages maybe could not have been deleted. We should add some kind of enum or ORable number, so we can only show the reasons that actually apply to the current ...Currently, we show a long, but still incomplete list of reasons why not all messages maybe could not have been deleted. We should add some kind of enum or ORable number, so we can only show the reasons that actually apply to the current situation.Android 1.2Torsten GroteTorsten Grotehttps://code.briarproject.org/briar/briar/-/issues/1669Request to send images2019-11-20T09:50:50ZfwholdRequest to send imagesCongratulations! Fantastic project! When will you be able to send the images? Is this update planned?
* [ ] Congratulations! Fantastic project! When will you be able to send the images? Is this update planned?
* [ ] https://code.briarproject.org/briar/briar/-/issues/1666F-droid version is outdated (please, keep it up to date)2019-11-14T15:28:31ZtuquequeF-droid version is outdated (please, keep it up to date)Hello. I don't know if this can be called an "issue", but to me it is. I want to try the new version of Briar and I haven't been able to because the F-droid version of Briar is still in the 1.1.6. I've waited several days, but no sign of...Hello. I don't know if this can be called an "issue", but to me it is. I want to try the new version of Briar and I haven't been able to because the F-droid version of Briar is still in the 1.1.6. I've waited several days, but no sign of new version. It's a bit frustrating/disappointing having to write here for such a thing, but I made a comment on your Twitter account also several days ago and no response yet.
Thank you for your time and investment on this great app. Just try to keep it up to date on all stores.https://code.briarproject.org/briar/briar/-/issues/1663Android 11 Scoped Storage - Android future completely Google dependent (centr...2019-11-13T10:13:34ZGhost UserAndroid 11 Scoped Storage - Android future completely Google dependent (centralization)I read some details (Scoped Storage) about what should come in Android Q (Android 10), but was aborted first and will be introduced with Android 11.
Why Google lies to the users and what the honest developers have to say about it and ha...I read some details (Scoped Storage) about what should come in Android Q (Android 10), but was aborted first and will be introduced with Android 11.
Why Google lies to the users and what the honest developers have to say about it and have recognized it correctly.
https://www.xda-developers.com/android-q-storage-access-framework-scoped-storage/
> Google touts the security and privacy benefits of this change, but technically speaking, there is no improvement. Apps have had the ability to privately store files since Android 1.0, and almost all apps make use of this capability. When you grant an app access to the root directory of your storage via SAF, it can read, write, and send any file it wants to its nefarious developer in the exact same fashion it could when you granted an app access to storage in Pie.
> The only “security improvement” comes about because it’s now a more arduous process for a user to do this. Unless of course an app only wants to steal your most personal information, like photos and videos you’ve taken, for which Google has added an alternative access solution which uses a simple pop-up click-yes security dialog.
> It is not known what benefits Google hopes to achieve with this change. The official stated reason in the Android Q beta documentation is to “give users more control over their files and to limit file clutter.” Scoped storage, in its present form, is a new limitation of what the user is allowed to do, not an extension of their control. The claim of reducing clutter may be somewhat valid, but only because the change reduces the ability to use files at all. And “clutter” is increased when you consider the problem of some apps now having to duplicate files to work with them.
> If Google is truly concerned about giving users more control over files and clutter, they should architect a solution that directly addresses that, rather than falsely branding the current Android Q design as such an improvement. The simplest answer would be to let users decide if they want an app to have scoped or general filesystem access, using the extant storage permission request dialog. If there is a particular concern for users making poor decisions here, it’s certainly possible to make that dialog more prominent and require additional user interaction to approve an app for full access.
> The answer to how Android can give users more control of their files is to actually give users more control, not to take it away and fundamentally constrain the capabilities of the Android platform.
What do we see here?
The developers knew exactly how to really improve it for the users and the added value behind it.
Why does Google lie and want to include it in Android Q even though it's not an improvement? Google wants to limit Android even further, just like Apple does with their iOS system and products that use this system e.g. iPhone.
Google is pursuing the same goals as Apple and Microsoft in the final stages. Building a centralized system. No more control by users or developers, only server dependent.
The problem that most Android or Linux developers have known about for a long time and therefore do not develop apps for centralized systems. But the consumers don't know it yet or don't see the interrelations and that's a problem.
Since Google is able to integrate it into Android 11, they will try again and again in the future to make the Android platform similar to the Apple platform.
What many do not know Google does these steps in small steps. So it always starts first.
Only in a few years one sees the effects. Apps can only be installed from the Google Play Store. Everything else goes only by an software which one sends to Google, in order to get a permission, so that the App can be installed. No offline setup/use possible anymore! Android devices can only be set up and used via Internet activation at some point (as with iPhone).
We have to act otherwise we will be more and more controlled by global corporations that only pursue their own interests (centralization, control, economic growth, fake security problems to limit the operating system, more market power, etc).
But the cause is in reality the consumers. The majority currently believe that Google, Apple, etc... are on the users' side. No, that's not true. It's just an illusion to distract.
The fact is that without the users' money, corporations like Google cannot exist. The decision is always ours!
We millions of users can spend more money in independent systems, hardware, software. We users can support even more independent developers. It's really possible. Don't forget!https://code.briarproject.org/briar/briar/-/issues/16626. The Briar apk name should contain the version number in the name as well2019-11-13T10:09:26ZGhost User6. The Briar apk name should contain the version number in the name as wellDownload the Briar app for Android here: https://briarproject.org/apk/briar.apk
In the name is no version number. it's just: **briar.apk**
Perhaps more details should be added to better organize your apk library faster and more accurat...Download the Briar app for Android here: https://briarproject.org/apk/briar.apk
In the name is no version number. it's just: **briar.apk**
Perhaps more details should be added to better organize your apk library faster and more accurately.
Like this, for example: **Briar v1.2.4.apk** or **Briar-1.2.4.apk**https://code.briarproject.org/briar/briar/-/issues/16582. The app version + the revision number is missing2019-11-13T10:04:31ZGhost User2. The app version + the revision number is missingWhy can't see it in the settings of Briar. The app version + the revision number.
Tested with Briar 1.2.4 versionWhy can't see it in the settings of Briar. The app version + the revision number.
Tested with Briar 1.2.4 versionhttps://code.briarproject.org/briar/briar/-/issues/16571. Feedback function really works? I'm skeptical.2019-11-13T10:01:55ZGhost User1. Feedback function really works? I'm skeptical.Hello,
I'm using the current **Briar 1.2.4 version** and sent several feedbacks about 1 week ago. I always got this message: **Report saved. It will be sent the next time you log into Briar.**
I use mobile data and Wifi connection. The...Hello,
I'm using the current **Briar 1.2.4 version** and sent several feedbacks about 1 week ago. I always got this message: **Report saved. It will be sent the next time you log into Briar.**
I use mobile data and Wifi connection. The problem I am very skeptical if the feedback really arrived with you. When I sent it I didn't see any traffic. Then log out from Briar app.
When I start the app again there was some traffic, but you don't know if the feedback was really sent. There was no small message that it was sent.
Why is the report saved? If I do have internet conncection via mobile data or wifi, why not send it immediately?https://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/1628Multi-select conversion messages to delete2019-11-08T15:58:43ZTorsten GroteMulti-select conversion messages to deleteSubtask of #68
Add multi-selection of messages to conversation view and add a delete action for ActionMode.
If we migrated to AndroidX when working on this ticket, we could use the [androidx.recyclerview.selection](https://developer.an...Subtask of #68
Add multi-selection of messages to conversation view and add a delete action for ActionMode.
If we migrated to AndroidX when working on this ticket, we could use the [androidx.recyclerview.selection](https://developer.android.com/reference/androidx/recyclerview/selection/package-summary) library. Article: https://proandroiddev.com/a-guide-to-recyclerview-selection-3ed9f2381504Android 1.2Torsten GroteTorsten Grotehttps://code.briarproject.org/briar/briar/-/issues/1643Possible Controller Memory Leaks2019-11-07T16:33:48ZTorsten GrotePossible Controller Memory LeaksNot sure I understand these traces correctly, but they seem to indicate that our controllers are leaking their listeners?
```
019-10-28 15:47:18.340 D/LeakCanary: ┬
2019-10-28 15:47:18.340 D/LeakCanary: ├─ android.view.inputmethod.Input...Not sure I understand these traces correctly, but they seem to indicate that our controllers are leaking their listeners?
```
019-10-28 15:47:18.340 D/LeakCanary: ┬
2019-10-28 15:47:18.340 D/LeakCanary: ├─ android.view.inputmethod.InputMethodManager
2019-10-28 15:47:18.340 D/LeakCanary: │ Leaking: NO (InputMethodManager↓ is not leaking and a class is never leaking)
2019-10-28 15:47:18.341 D/LeakCanary: │ GC Root: System class
2019-10-28 15:47:18.341 D/LeakCanary: │ ↓ static InputMethodManager.sInstance
2019-10-28 15:47:18.341 D/LeakCanary: ├─ android.view.inputmethod.InputMethodManager
2019-10-28 15:47:18.341 D/LeakCanary: │ Leaking: NO (FabSpeedDial↓ is not leaking and InputMethodManager is a singleton)
2019-10-28 15:47:18.341 D/LeakCanary: │ ↓ InputMethodManager.mNextServedView
2019-10-28 15:47:18.341 D/LeakCanary: ├─ io.github.kobakei.materialfabspeeddial.FabSpeedDial
2019-10-28 15:47:18.341 D/LeakCanary: │ Leaking: NO (NavDrawerActivity↓ is not leaking and View attached)
2019-10-28 15:47:18.341 D/LeakCanary: │ mContext instance of org.briarproject.briar.android.navdrawer.NavDrawerActivity with mDestroyed = false
2019-10-28 15:47:18.341 D/LeakCanary: │ View.parent androidx.coordinatorlayout.widget.CoordinatorLayout attached as well
2019-10-28 15:47:18.341 D/LeakCanary: │ View#mParent is set
2019-10-28 15:47:18.341 D/LeakCanary: │ View#mAttachInfo is not null (view attached)
2019-10-28 15:47:18.341 D/LeakCanary: │ View.mWindowAttachCount = 1
2019-10-28 15:47:18.341 D/LeakCanary: │ ↓ FabSpeedDial.mContext
2019-10-28 15:47:18.341 D/LeakCanary: ├─ org.briarproject.briar.android.navdrawer.NavDrawerActivity
2019-10-28 15:47:18.341 D/LeakCanary: │ Leaking: NO (Activity#mDestroyed is false)
2019-10-28 15:47:18.341 D/LeakCanary: │ ↓ NavDrawerActivity.activityComponent
2019-10-28 15:47:18.341 D/LeakCanary: │ ~~~~~~~~~~~~~~~~~
2019-10-28 15:47:18.341 D/LeakCanary: ├─ org.briarproject.briar.android.activity.DaggerActivityComponent
2019-10-28 15:47:18.341 D/LeakCanary: │ Leaking: UNKNOWN
2019-10-28 15:47:18.341 D/LeakCanary: │ ↓ DaggerActivityComponent.provideFeedControllerProvider
2019-10-28 15:47:18.341 D/LeakCanary: │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2019-10-28 15:47:18.341 D/LeakCanary: ├─ dagger.internal.DoubleCheck
2019-10-28 15:47:18.341 D/LeakCanary: │ Leaking: UNKNOWN
2019-10-28 15:47:18.341 D/LeakCanary: │ ↓ DoubleCheck.instance
2019-10-28 15:47:18.341 D/LeakCanary: │ ~~~~~~~~
2019-10-28 15:47:18.341 D/LeakCanary: ├─ org.briarproject.briar.android.blog.FeedControllerImpl
2019-10-28 15:47:18.341 D/LeakCanary: │ Leaking: UNKNOWN
2019-10-28 15:47:18.341 D/LeakCanary: │ ↓ FeedControllerImpl.listener
2019-10-28 15:47:18.341 D/LeakCanary: │ ~~~~~~~~
2019-10-28 15:47:18.341 D/LeakCanary: ╰→ org.briarproject.briar.android.blog.FeedFragment
2019-10-28 15:47:18.341 D/LeakCanary: Leaking: YES (Fragment#mFragmentManager is null and ObjectWatcher was watching this)
2019-10-28 15:47:18.341 D/LeakCanary: key = a5208355-72cd-4f49-80f3-3f6684261091
2019-10-28 15:47:18.341 D/LeakCanary: watchDurationMillis = 2266
2019-10-28 15:47:18.341 D/LeakCanary: retainedDurationMillis = -1
2019-10-28 15:47:18.341 D/LeakCanary: , retainedHeapByteSize=2548), ApplicationLeak(className=org.briarproject.briar.android.privategroup.list.GroupListFragment, leakTrace=
```
```
2019-10-28 15:47:18.341 D/LeakCanary: ┬
2019-10-28 15:47:18.341 D/LeakCanary: ├─ android.view.inputmethod.InputMethodManager
2019-10-28 15:47:18.341 D/LeakCanary: │ Leaking: NO (InputMethodManager↓ is not leaking and a class is never leaking)
2019-10-28 15:47:18.341 D/LeakCanary: │ GC Root: System class
2019-10-28 15:47:18.341 D/LeakCanary: │ ↓ static InputMethodManager.sInstance
2019-10-28 15:47:18.341 D/LeakCanary: ├─ android.view.inputmethod.InputMethodManager
2019-10-28 15:47:18.341 D/LeakCanary: │ Leaking: NO (FabSpeedDial↓ is not leaking and InputMethodManager is a singleton)
2019-10-28 15:47:18.341 D/LeakCanary: │ ↓ InputMethodManager.mNextServedView
2019-10-28 15:47:18.341 D/LeakCanary: ├─ io.github.kobakei.materialfabspeeddial.FabSpeedDial
2019-10-28 15:47:18.341 D/LeakCanary: │ Leaking: NO (NavDrawerActivity↓ is not leaking and View attached)
2019-10-28 15:47:18.341 D/LeakCanary: │ mContext instance of org.briarproject.briar.android.navdrawer.NavDrawerActivity with mDestroyed = false
2019-10-28 15:47:18.341 D/LeakCanary: │ View.parent androidx.coordinatorlayout.widget.CoordinatorLayout attached as well
2019-10-28 15:47:18.341 D/LeakCanary: │ View#mParent is set
2019-10-28 15:47:18.341 D/LeakCanary: │ View#mAttachInfo is not null (view attached)
2019-10-28 15:47:18.341 D/LeakCanary: │ View.mWindowAttachCount = 1
2019-10-28 15:47:18.341 D/LeakCanary: │ ↓ FabSpeedDial.mContext
2019-10-28 15:47:18.341 D/LeakCanary: ├─ org.briarproject.briar.android.navdrawer.NavDrawerActivity
2019-10-28 15:47:18.341 D/LeakCanary: │ Leaking: NO (Activity#mDestroyed is false)
2019-10-28 15:47:18.341 D/LeakCanary: │ ↓ NavDrawerActivity.activityComponent
2019-10-28 15:47:18.341 D/LeakCanary: │ ~~~~~~~~~~~~~~~~~
2019-10-28 15:47:18.341 D/LeakCanary: ├─ org.briarproject.briar.android.activity.DaggerActivityComponent
2019-10-28 15:47:18.341 D/LeakCanary: │ Leaking: UNKNOWN
2019-10-28 15:47:18.341 D/LeakCanary: │ ↓ DaggerActivityComponent.provideGroupListControllerProvider
2019-10-28 15:47:18.341 D/LeakCanary: │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2019-10-28 15:47:18.341 D/LeakCanary: ├─ dagger.internal.DoubleCheck
2019-10-28 15:47:18.341 D/LeakCanary: │ Leaking: UNKNOWN
2019-10-28 15:47:18.341 D/LeakCanary: │ ↓ DoubleCheck.instance
2019-10-28 15:47:18.341 D/LeakCanary: │ ~~~~~~~~
2019-10-28 15:47:18.341 D/LeakCanary: ├─ org.briarproject.briar.android.privategroup.list.GroupListControllerImpl
2019-10-28 15:47:18.341 D/LeakCanary: │ Leaking: UNKNOWN
2019-10-28 15:47:18.341 D/LeakCanary: │ ↓ GroupListControllerImpl.listener
2019-10-28 15:47:18.341 D/LeakCanary: │ ~~~~~~~~
2019-10-28 15:47:18.341 D/LeakCanary: ╰→ org.briarproject.briar.android.privategroup.list.GroupListFragment
2019-10-28 15:47:18.341 D/LeakCanary: Leaking: YES (Fragment#mFragmentManager is null and ObjectWatcher was watching this)
2019-10-28 15:47:18.341 D/LeakCanary: key = dd89f2de-3b6e-40e3-9d63-2484dea5702a
2019-10-28 15:47:18.341 D/LeakCanary: watchDurationMillis = 30199
2019-10-28 15:47:18.341 D/LeakCanary: retainedDurationMillis = 25198
2019-10-28 15:47:18.341 D/LeakCanary: , retainedHeapByteSize=181665)], libraryLeaks=[])
```Android 1.2Torsten GroteTorsten Grotehttps://code.briarproject.org/briar/briar/-/issues/1653NPE in SettingsFragment2019-11-07T15:30:08ZakwizgranNPE in SettingsFragment* Android version: 8.1.0
* Phone model: Samsung SM-J727T1 (j7popeltemtr)
* Briar version: 1.2.3 (b464dcc)
Stacktrace:
```
java.lang.NullPointerException: Attempt to invoke virtual method 'int org.briarproject.bramble.api.StringMap.getIn...* Android version: 8.1.0
* Phone model: Samsung SM-J727T1 (j7popeltemtr)
* Briar version: 1.2.3 (b464dcc)
Stacktrace:
```
java.lang.NullPointerException: Attempt to invoke virtual method 'int org.briarproject.bramble.api.StringMap.getInt(java.lang.String, int)' on a null object reference
at org.briarproject.briar.android.settings.SettingsFragment.lambda$displaySettings$5$SettingsFragment(SettingsFragment.java:362)
at org.briarproject.briar.android.settings.-$$Lambda$SettingsFragment$xRJquGmI1azWoHeyvk2gdi8cc28.run(Unknown Source:2)
at org.briarproject.briar.android.activity.BaseActivity.lambda$runOnUiThreadUnlessDestroyed$0$BaseActivity(BaseActivity.java:216)
at org.briarproject.briar.android.activity.-$$Lambda$BaseActivity$fOFM6FuIkzfuGdAaggyXMoMGR0E.run(Unknown Source:4)
at android.app.Activity.runOnUiThread(Activity.java:6355)
at org.briarproject.briar.android.activity.BaseActivity.runOnUiThreadUnlessDestroyed(BaseActivity.java:215)
at org.briarproject.briar.android.settings.SettingsFragment.displaySettings(SettingsFragment.java:357)
at org.briarproject.briar.android.settings.SettingsFragment.eventOccurred(SettingsFragment.java:675)
at org.briarproject.bramble.event.EventBusImpl.lambda$broadcast$0$EventBusImpl(EventBusImpl.java:42)
at org.briarproject.bramble.event.-$$Lambda$EventBusImpl$bRn946wCXST7O6nsMZt_9tnkiuk.run(Unknown Source:4)
at android.os.Handler.handleCallback(Handler.java:790)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:164)
at android.app.ActivityThread.main(ActivityThread.java:6958)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:441)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1408)
```Android 1.2Torsten GroteTorsten Grotehttps://code.briarproject.org/briar/briar/-/issues/1638Image support not updated while conversation is open2019-11-06T17:55:06ZTorsten GroteImage support not updated while conversation is open[User testing has identified an issue](https://code.briarproject.org/briar/briar/issues/1243#note_38091) that the conversation does not update its image support status when this becomes available while the conversation is already open.[User testing has identified an issue](https://code.briarproject.org/briar/briar/issues/1243#note_38091) that the conversation does not update its image support status when this becomes available while the conversation is already open.Android 1.3akwizgranakwizgranhttps://code.briarproject.org/briar/briar/-/issues/1610Pending contact list shows "no internet connection" when empty2019-11-06T09:54:17ZakwizgranPending contact list shows "no internet connection" when emptyIf the pending contact list is opened concurrently with the last pending contact being removed (unlikely but possible - it happened to me accidentally while testing !1152) then the "no internet connection" snackbar is shown even though t...If the pending contact list is opened concurrently with the last pending contact being removed (unlikely but possible - it happened to me accidentally while testing !1152) then the "no internet connection" snackbar is shown even though the app is connected to Tor.
![device-2019-07-01-170738](/uploads/b314816dbe11b6a327f81498adafa442/device-2019-07-01-170738.png)Android 1.2Torsten GroteTorsten Grotehttps://code.briarproject.org/briar/briar/-/issues/1654ActivityNotFoundException for CHANNEL_NOTIFICATION_SETTINGS intent2019-11-06T09:49:37ZakwizgranActivityNotFoundException for CHANNEL_NOTIFICATION_SETTINGS intent* Android version: 8.1.0
* Phone model: Smartisan OE106 (ocean)
* Briar version: 1.1.7 (37d0b61)
Stacktrace:
```
android.content.ActivityNotFoundException: No Activity found to handle Intent { act=android.settings.CHANNEL_NOTIFICATION_S...* Android version: 8.1.0
* Phone model: Smartisan OE106 (ocean)
* Briar version: 1.1.7 (37d0b61)
Stacktrace:
```
android.content.ActivityNotFoundException: No Activity found to handle Intent { act=android.settings.CHANNEL_NOTIFICATION_SETTINGS (has extras) }
at android.app.Instrumentation.checkStartActivityResult(Instrumentation.java:1951)
at android.app.Instrumentation.execStartActivity(Instrumentation.java:1619)
at android.app.Activity.startActivityForResult(Activity.java:4743)
at android.support.v4.app.FragmentActivity.startActivityForResult(FragmentActivity.java:767)
at android.support.v4.app.ActivityCompat.startActivityForResult(ActivityCompat.java:234)
at android.support.v4.app.FragmentActivity.startActivityFromFragment(FragmentActivity.java:881)
at android.support.v4.app.FragmentActivity$HostCallbacks.onStartActivityFromFragment(FragmentActivity.java:995)
at android.support.v4.app.Fragment.startActivity(Fragment.java:1084)
at android.support.v4.app.Fragment.startActivity(Fragment.java:1073)
at org.briarproject.briar.android.settings.SettingsFragment.lambda$setupNotificationPreference$6$SettingsFragment(SettingsFragment.java:492)
at org.briarproject.briar.android.settings.-$$Lambda$SettingsFragment$cYspmIOr_7rwGYgKSD-5SJndzsI.onPreferenceClick(Unknown Source:4)
at android.support.v7.preference.Preference.performClick(Preference.java:1165)
at android.support.v7.preference.Preference.performClick(Preference.java:1148)
at android.support.v14.preference.SwitchPreference.performClick(SwitchPreference.java:213)
at android.support.v7.preference.Preference$1.onClick(Preference.java:172)
at android.view.View.performClick(View.java:6436)
at android.view.View$PerformClick.run(View.java:25372)
at android.os.Handler.handleCallback(Handler.java:790)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:164)
at android.app.ActivityThread.main(ActivityThread.java:6901)
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:820)
```
Maybe an OEM ROM that doesn't have the standard notification settings activity?Android 1.2Torsten GroteTorsten Grotehttps://code.briarproject.org/briar/briar/-/issues/1611"Add contact at a distance" share action is available in 1.1 releases2019-11-06T09:48:24Zakwizgran"Add contact at a distance" share action is available in 1.1 releasesThe remote contact feature is accessible in recent releases from the 1.1 series via the "add contact at a distance" share action.The remote contact feature is accessible in recent releases from the 1.1 series via the "add contact at a distance" share action.Android 1.1