briar issueshttps://code.briarproject.org/briar/briar/-/issues2021-11-11T16:04:24Zhttps://code.briarproject.org/briar/briar/-/issues/2216SecurityException: Permission Denial for MANAGE_DOCUMENTS2021-11-11T16:04:24ZakwizgranSecurityException: Permission Denial for MANAGE_DOCUMENTSThis looks similar to #2143 and may be the same device as https://code.briarproject.org/briar/briar/-/issues/2143#note_56595, but with a different stacktrace.
* Android version: 5.1
* Phone model: Meizu M3s
* Briar version: 1.3.8 (80767...This looks similar to #2143 and may be the same device as https://code.briarproject.org/briar/briar/-/issues/2143#note_56595, but with a different stacktrace.
* Android version: 5.1
* Phone model: Meizu M3s
* Briar version: 1.3.8 (8076775)
* User feedback: "I uploaded a JPG photo, crashed."
Stacktrace:
```
java.lang.SecurityException: Permission Denial: opening provider com.android.providers.media.MediaDocumentsProvider from ProcessRecord{127a6dac 23863:org.briarproject.briar.android/u0a98} (pid=23863, uid=10098) requires android.permission.MANAGE_DOCUMENTS or android.permission.MANAGE_DOCUMENTS
at android.os.Parcel.readException(Parcel.java:1546)
at android.os.Parcel.readException(Parcel.java:1499)
at android.app.ActivityManagerProxy.getContentProvider(ActivityManagerNative.java:3579)
at android.app.ActivityThread.acquireProvider(ActivityThread.java:5203)
at android.app.ContextImpl$ApplicationContentResolver.acquireUnstableProvider(ContextImpl.java:2657)
at android.content.ContentResolver.acquireUnstableProvider(ContentResolver.java:1500)
at android.content.ContentResolver.openTypedAssetFileDescriptor(ContentResolver.java:1106)
at android.content.ContentResolver.openAssetFileDescriptor(ContentResolver.java:946)
at android.content.ContentResolver.openInputStream(ContentResolver.java:671)
at org.briarproject.briar.android.attachment.AttachmentCreationTask.storeAttachment(AttachmentCreationTask.java:103)
at org.briarproject.briar.android.attachment.AttachmentCreationTask.processUri(AttachmentCreationTask.java:79)
at org.briarproject.briar.android.attachment.AttachmentCreationTask.storeAttachments(AttachmentCreationTask.java:68)
at org.briarproject.briar.android.attachment.AttachmentCreatorImpl.lambda$null$0(AttachmentCreatorImpl.java:94)
at org.briarproject.briar.android.attachment.AttachmentCreatorImpl.lambda$null$0$AttachmentCreatorImpl(AttachmentCreatorImpl.java)
at org.briarproject.briar.android.attachment.-$$Lambda$AttachmentCreatorImpl$buxZfdoUf6j50-ilIY-ZnTGRVoE.run(lambda)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
at java.lang.Thread.run(Thread.java:818)
```https://code.briarproject.org/briar/briar/-/issues/2215IllegalStateException when changing fragments in SettingsActivity2021-11-11T16:04:24ZakwizgranIllegalStateException when changing fragments in SettingsActivity* Android version: 4.2.2
* Briar version: 1.3.8 (8076775)
* Phone model: TCT One Touch 4033D (Yaris_M)
* User feedback: "I opened another app"
Last lines of log:
```
11-01 08:40:18.454 I/BaseActivity: Pausing TransportsActivity
11-01 08...* Android version: 4.2.2
* Briar version: 1.3.8 (8076775)
* Phone model: TCT One Touch 4033D (Yaris_M)
* User feedback: "I opened another app"
Last lines of log:
```
11-01 08:40:18.454 I/BaseActivity: Pausing TransportsActivity
11-01 08:40:18.467 I/BaseActivity: Starting NavDrawerActivity
11-01 08:40:18.467 I/BaseActivity: Resuming NavDrawerActivity
11-01 08:40:26.200 I/BaseActivity: Pausing NavDrawerActivity
11-01 08:40:26.228 I/BaseActivity: Creating SettingsActivity
11-01 08:40:26.280 I/BaseActivity: Starting SettingsActivity
11-01 08:40:26.280 I/BaseActivity: Resuming SettingsActivity
11-01 08:40:27.005 I/BaseActivity: Stopping TransportsActivity
11-01 08:40:27.007 I/BaseActivity: Destroying TransportsActivity
11-01 08:40:27.016 I/BaseActivity: Stopping NavDrawerActivity
11-01 08:40:31.697 I/BaseActivity: Pausing SettingsActivity
```
Stacktrace:
```
java.lang.IllegalStateException: Can not perform this action after onSaveInstanceState
at androidx.fragment.app.FragmentManager.checkStateLoss(FragmentManager.java:1844)
at androidx.fragment.app.FragmentManager.enqueueAction(FragmentManager.java:1884)
at androidx.fragment.app.BackStackRecord.commitInternal(BackStackRecord.java:329)
at androidx.fragment.app.BackStackRecord.commit(BackStackRecord.java:294)
at org.briarproject.briar.android.settings.SettingsActivity.showNextFragment(SettingsActivity.java:83)
at org.briarproject.briar.android.settings.SettingsActivity.onPreferenceStartFragment(SettingsActivity.java:72)
at androidx.preference.PreferenceFragmentCompat.onPreferenceTreeClick(PreferenceFragmentCompat.java:407)
at androidx.preference.Preference.performClick(Preference.java:1192)
at androidx.preference.Preference.performClick(Preference.java:1166)
at androidx.preference.Preference$1.onClick(Preference.java:181)
at android.view.View.performClick(View.java:4212)
at android.view.View$PerformClick.run(View.java:17476)
at android.os.Handler.handleCallback(Handler.java:800)
at android.os.Handler.dispatchMessage(Handler.java:100)
at android.os.Looper.loop(Looper.java:194)
at android.app.ActivityThread.main(ActivityThread.java:5400)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:525)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:837)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:604)
at dalvik.system.NativeStart.main(Native Method)
```Android 1.4https://code.briarproject.org/briar/briar/-/issues/2214ActivityNotFoundException for CREATE_DOCUMENT intent2022-04-20T14:54:05ZakwizgranActivityNotFoundException for CREATE_DOCUMENT intentThis looks similar to #2097, but with CREATE_DOCUMENT instead of OPEN_DOCUMENT.
* Android version: 7.1.1
* Phone model: Meitu MP1709
* Briar version: 1.3.8 (8076775)
Last lines of log:
```
10-03 16:14:39.625 I/BaseActivity: Pausing Con...This looks similar to #2097, but with CREATE_DOCUMENT instead of OPEN_DOCUMENT.
* Android version: 7.1.1
* Phone model: Meitu MP1709
* Briar version: 1.3.8 (8076775)
Last lines of log:
```
10-03 16:14:39.625 I/BaseActivity: Pausing ConversationActivity
10-03 16:14:39.641 I/BaseActivity: Creating ImageActivity
10-03 16:14:39.681 I/BaseActivity: Starting ImageActivity
10-03 16:14:39.685 I/BaseActivity: Resuming ImageActivity
10-03 16:14:40.191 I/BaseActivity: Stopping ConversationActivity
```
Stacktrace:
```
No Activity found to handle Intent { act=android.intent.action.CREATE_DOCUMENT typ=*/* (has extras) }
android.content.ActivityNotFoundException: No Activity found to handle Intent { act=android.intent.action.CREATE_DOCUMENT typ=*/* (has extras) }
at android.app.Instrumentation.checkStartActivityResult(Instrumentation.java:1809)
at android.app.Instrumentation.execStartActivity(Instrumentation.java:1523)
at android.app.Activity.startActivityForResult(Activity.java:4227)
at androidx.activity.ComponentActivity.startActivityForResult(ComponentActivity.java:574)
at androidx.core.app.ActivityCompat.startActivityForResult(ActivityCompat.java:234)
at androidx.activity.ComponentActivity$2.onLaunch(ComponentActivity.java:208)
at androidx.activity.result.ActivityResultRegistry$2.launch(ActivityResultRegistry.java:166)
at androidx.activity.result.ActivityResultLauncher.launch(ActivityResultLauncher.java:47)
at org.briarproject.briar.android.conversation.ImageActivity.lambda$showSaveImageDialog$2(ImageActivity.java:266)
at org.briarproject.briar.android.conversation.ImageActivity.lambda$showSaveImageDialog$2$ImageActivity(ImageActivity.java)
at org.briarproject.briar.android.conversation.-$$Lambda$ImageActivity$ko_mlYveGbWbVoqWLtXvgqGatns.onClick(lambda)
at androidx.appcompat.app.AlertController$ButtonHandler.handleMessage(AlertController.java:167)
at android.os.Handler.dispatchMessage(Handler.java:110)
at android.os.Looper.loop(Looper.java:203)
at android.app.ActivityThread.main(ActivityThread.java:6314)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1097)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:951)
```
We have two reports of this but they look like they come from the same device, so I won't add it to the current milestone yet.Android 1.4akwizgranakwizgranhttps://code.briarproject.org/briar/briar/-/issues/2210Syncing via removable drives fails when drive is removed too soon2021-11-02T14:07:11ZakwizgranSyncing via removable drives fails when drive is removed too soonA volunteer who was testing syncing via removable drives found that if they removed the removable drive from the sending device too soon, the file was empty (0 bytes) and the import failed with "Error importing data" on the receiving dev...A volunteer who was testing syncing via removable drives found that if they removed the removable drive from the sending device too soon, the file was empty (0 bytes) and the import failed with "Error importing data" on the receiving device.
We already knew this was possible, but I'm opening a ticket for it as it's been seen in the wild.
We may be able to improve how we handle this, for example by showing a more specific error message if the file is empty, or by adding a delay on the sender side before reporting that the write is complete, to allow more time for the data to be written to the drive.https://code.briarproject.org/briar/briar/-/issues/2209Unable to delete my own blogs2021-10-26T10:35:55ZJerry WhiteUnable to delete my own blogsI'm unable to delete any blogs i create. The option appears from the menu but is greyed out and unavailable.
I can successfully delete RSS feeds and other people's blogs but not my own. This means if i make a mistake, it's permanent and ...I'm unable to delete any blogs i create. The option appears from the menu but is greyed out and unavailable.
I can successfully delete RSS feeds and other people's blogs but not my own. This means if i make a mistake, it's permanent and the only option is to create a new Briar account.https://code.briarproject.org/briar/briar/-/issues/2205Edit profile picture2021-10-13T13:58:45ZIvanaEdit profile pictureOne of the outcomes of the Sponsor 6 user survey that ran in the summer of 2021 is the following user request: "It's like other messenger apps, so don't change anything about it, maybe add an edit section for the picture". Another user g...One of the outcomes of the Sponsor 6 user survey that ran in the summer of 2021 is the following user request: "It's like other messenger apps, so don't change anything about it, maybe add an edit section for the picture". Another user gave this feedback: "Ability to resize and create effects and filters on profile picture."https://code.briarproject.org/briar/briar/-/issues/2204Private group improvements - icon to invite contacts2021-10-13T13:57:15ZIvanaPrivate group improvements - icon to invite contactsOne of the outcomes of the Sponsor 6 user survey ran in the summer of 2021 is the following user request "To add an audience, I habitually went to the dot. As a result, it was a little strange for me to use the 'subscribe' icon to 'invit...One of the outcomes of the Sponsor 6 user survey ran in the summer of 2021 is the following user request "To add an audience, I habitually went to the dot. As a result, it was a little strange for me to use the 'subscribe' icon to 'invite'. The corresponding icon is known as 'subscribe'."https://code.briarproject.org/briar/briar/-/issues/2203Private group improvements - editing the audience2021-10-13T13:55:53ZIvanaPrivate group improvements - editing the audienceOne of the outcomes of the Sponsor6 user survey ran in the summer of 2021 is the following user request "It is difficult to edit your audience as soon as it is formed."One of the outcomes of the Sponsor6 user survey ran in the summer of 2021 is the following user request "It is difficult to edit your audience as soon as it is formed."https://code.briarproject.org/briar/briar/-/issues/2202Private group improvements - add a contact from the settings section2021-10-13T13:53:35ZIvanaPrivate group improvements - add a contact from the settings sectionOne of the outcomes of the Sponsor6 user survey ran in the summer of 2021 is the following user request "Adding a friend with the share button is not appropriate for me, one must be added from the settings section"One of the outcomes of the Sponsor6 user survey ran in the summer of 2021 is the following user request "Adding a friend with the share button is not appropriate for me, one must be added from the settings section"https://code.briarproject.org/briar/briar/-/issues/2201Private group improvements - invite users at the bottom of the page and float2021-10-13T13:51:13ZIvanaPrivate group improvements - invite users at the bottom of the page and floatOne of the otucomes of the Sponsor6 user survey ran int he summer of 2021 is this user request: ""Invite members at the bottom of the page and float"One of the otucomes of the Sponsor6 user survey ran int he summer of 2021 is this user request: ""Invite members at the bottom of the page and float"https://code.briarproject.org/briar/briar/-/issues/2200Add contacts when creating a private group2021-10-13T13:55:39ZIvanaAdd contacts when creating a private groupOne of the outcomes of the Sponsor 6 user survey, which ran in the summer of 2021, is the user's request: "There should be a section to add people at the beginning and when creating the group."
Another user gave the feedback "It is diff...One of the outcomes of the Sponsor 6 user survey, which ran in the summer of 2021, is the user's request: "There should be a section to add people at the beginning and when creating the group."
Another user gave the feedback "It is difficult to edit your audience as soon as [a group] is formed", which may be a request for the same thing.https://code.briarproject.org/briar/briar/-/issues/2199Use plus icon to add members to private group2022-04-17T11:31:44ZIvanaUse plus icon to add members to private groupOne of the outcomes of the Sponsor6 user survey, which ran in the summer of 2021, is the user's request: "Instead of using the sharing icon to add to the group, there should be a + icon or an option in the three-point menu to add to the ...One of the outcomes of the Sponsor6 user survey, which ran in the summer of 2021, is the user's request: "Instead of using the sharing icon to add to the group, there should be a + icon or an option in the three-point menu to add to the group. The sharing icon should be to give the group link to someone else."
Another user gave the feedback "Invite users at the bottom of the page and float", which may be a request to use a floating action button for adding members.
A third user gave the feedback "Adding a friend with the share button is not appropriate for me, one must be added from the settings section", which may be a request to add members via the member list screen.
A fourth user gave the feedback: "To add an audience, I habitually went to the dot. As a result, it was a little strange for me to use the 'subscribe' icon to 'invite'. The corresponding icon is known as 'subscribe'."https://code.briarproject.org/briar/briar/-/issues/2198Use same layout for message composition as Telegram and WhatsApp2021-10-13T13:48:36ZIvanaUse same layout for message composition as Telegram and WhatsAppOne of the outcomes of the Sponsor 6 user survey that ran in the summer of 2021 is the user's request: "The placement of emoji and adding an image needs to be swapped. People on Telegram and WhatsApp are used to it."One of the outcomes of the Sponsor 6 user survey that ran in the summer of 2021 is the user's request: "The placement of emoji and adding an image needs to be swapped. People on Telegram and WhatsApp are used to it."https://code.briarproject.org/briar/briar/-/issues/2197Option to send message by tapping 'Enter'2021-10-13T12:45:55ZIvanaOption to send message by tapping 'Enter'One of the outcomes of the Sponsor 6 user survey is a user's request to be able to send messages by tapping the Enter button on the keyboard. "It is better to send a message by tapping the keyboard."
Some apps provide a setting that con...One of the outcomes of the Sponsor 6 user survey is a user's request to be able to send messages by tapping the Enter button on the keyboard. "It is better to send a message by tapping the keyboard."
Some apps provide a setting that controls whether Enter sends the message or starts a new line.https://code.briarproject.org/briar/briar/-/issues/2196Add more animations2021-10-13T12:44:36ZIvanaAdd more animationsOne of the outcomes of the Sponsor 6 user survey that ran in the summer of 2021 is that users asked for "more animations in the app", "improve animations", and "animation and colour".
Not sure what kind of animations are meant, but this...One of the outcomes of the Sponsor 6 user survey that ran in the summer of 2021 is that users asked for "more animations in the app", "improve animations", and "animation and colour".
Not sure what kind of animations are meant, but this is just to note the user's request for any future projects that will consider UX improvementshttps://code.briarproject.org/briar/briar/-/issues/2195Add bot API2021-10-13T12:41:14ZIvanaAdd bot APIOne of the outcomes of the Sponsor 6 user survey, which ran in the summer of 2021, is a user request to "Have a robot and a channel like Telegram"One of the outcomes of the Sponsor 6 user survey, which ran in the summer of 2021, is a user request to "Have a robot and a channel like Telegram"https://code.briarproject.org/briar/briar/-/issues/2194Have channels like Telegram2021-10-13T12:40:30ZIvanaHave channels like TelegramOne of the outcomes of the Sponsor 6 user survey, which ran in the summer of 2021, is the users' request for "channels like Telegram"One of the outcomes of the Sponsor 6 user survey, which ran in the summer of 2021, is the users' request for "channels like Telegram"https://code.briarproject.org/briar/briar/-/issues/2179Customizable disappearing messages timer2021-09-29T15:13:27ZPanda CoderCustomizable disappearing messages timerI would be thankful for making disappearing messages feature more customizable. In my opinion one week for disappearing messages may be too long for some people.I would be thankful for making disappearing messages feature more customizable. In my opinion one week for disappearing messages may be too long for some people.https://code.briarproject.org/briar/briar/-/issues/2149Wifi plugin is inactive when phone is providing a hotspot on Android 112021-08-27T11:39:37ZakwizgranWifi plugin is inactive when phone is providing a hotspot on Android 11A user reported that on Android 11, when the phone is providing a hotspot configured through the system settings, Briar doesn't detect that a wifi network is available. I can reproduce this on the Pixel 2.A user reported that on Android 11, when the phone is providing a hotspot configured through the system settings, Briar doesn't detect that a wifi network is available. I can reproduce this on the Pixel 2.Android 1.3akwizgranakwizgranhttps://code.briarproject.org/briar/briar/-/issues/2143SecurityException: Permission Denial when opening image2022-04-20T14:53:08ZakwizgranSecurityException: Permission Denial when opening image* Android version: 4.4.2
* Phone model: Samsung GT-I9301I (s3ve3gxx)
* Briar version: 1.3.6 (445ef08)
Stacktrace:
```
java.lang.SecurityException: Permission Denial: reading com.android.providers.media.MediaProvider uri content://media/...* Android version: 4.4.2
* Phone model: Samsung GT-I9301I (s3ve3gxx)
* Briar version: 1.3.6 (445ef08)
Stacktrace:
```
java.lang.SecurityException: Permission Denial: reading com.android.providers.media.MediaProvider uri content://media/external/images/media/835 from pid=28044, uid=10227 requires android.permission.READ_EXTERNAL_STORAGE, or grantUriPermission()
at android.os.Parcel.readException(Parcel.java:1472)
at android.database.DatabaseUtils.readExceptionFromParcel(DatabaseUtils.java:185)
at android.database.DatabaseUtils.readExceptionWithFileNotFoundExceptionFromParcel(DatabaseUtils.java:148)
at android.content.ContentProviderProxy.openTypedAssetFile(ContentProviderNative.java:682)
at android.content.ContentResolver.openTypedAssetFileDescriptor(ContentResolver.java:1066)
at android.content.ContentResolver.openAssetFileDescriptor(ContentResolver.java:907)
at android.content.ContentResolver.openInputStream(ContentResolver.java:632)
at org.briarproject.briar.android.settings.SettingsViewModel.trySetAvatar(SettingsViewModel.java:230)
at org.briarproject.briar.android.settings.SettingsViewModel.lambda$setAvatar$2(SettingsViewModel.java:214)
at org.briarproject.briar.android.settings.SettingsViewModel.lambda$setAvatar$2$SettingsViewModel(SettingsViewModel.java)
at org.briarproject.briar.android.settings.-$$Lambda$SettingsViewModel$nVOlNd9texPikn4W8A-1eS1Xxu4.run(lambda)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
at java.lang.Thread.run(Thread.java:841)
```
I'm not sure whether we need to request READ_EXTERNAL_STORAGE on API 19, or whether this is caused by a bug in the app supplying the image and we just need to handle the exception cleanly.Android 1.4akwizgranakwizgran