briar issueshttps://code.briarproject.org/groups/briar/-/issues2021-04-26T12:13:43Zhttps://code.briarproject.org/briar/briar/-/issues/1942Profile picture isn't shown if settings screen is recreated after process was...2021-04-26T12:13:43ZakwizgranProfile picture isn't shown if settings screen is recreated after process was killedSteps to reproduce:
* Open the Briar settings screen
* Leave Briar running in the foreground and turn the screen off
* Use the ADB shell to kill the Briar process
* Turn the screen back on
* The Briar password prompt is shown
* Sign into...Steps to reproduce:
* Open the Briar settings screen
* Leave Briar running in the foreground and turn the screen off
* Use the ADB shell to kill the Briar process
* Turn the screen back on
* The Briar password prompt is shown
* Sign into Briar
* The settings screen is shown
* The profile picture isn't loaded
![device-2021-02-18-143535](/uploads/264e108ebbe0be0b9acb706e3080bfe1/device-2021-02-18-143535.png)
Tested on the Nexus 5X (Android 8.1.0).Adapt to changes in the Android platformakwizgranakwizgran2021-04-30https://code.briarproject.org/briar/briar/-/issues/1921PluginViewModel should wait for DB to open before loading settings2021-04-21T11:29:10ZakwizgranPluginViewModel should wait for DB to open before loading settingsWhile testing something unrelated on the 1.2.12 release I noticed this exception in the log:
```
02-03 16:15:52.017 2925-2952/org.briarproject.briar.android.debug W/PluginViewModel: org.briarproject.bramble.api.db.DbClosedException
...While testing something unrelated on the 1.2.12 release I noticed this exception in the log:
```
02-03 16:15:52.017 2925-2952/org.briarproject.briar.android.debug W/PluginViewModel: org.briarproject.bramble.api.db.DbClosedException
org.briarproject.bramble.api.db.DbClosedException
at org.briarproject.bramble.db.H2Database.createConnection(H2Database.java:97)
at org.briarproject.bramble.db.JdbcDatabase.startTransaction(JdbcDatabase.java:554)
at org.briarproject.bramble.db.JdbcDatabase.startTransaction(JdbcDatabase.java:97)
at org.briarproject.bramble.db.DatabaseComponentImpl.startTransaction(DatabaseComponentImpl.java:161)
at org.briarproject.bramble.db.DatabaseComponentImpl.transactionWithResult(DatabaseComponentImpl.java:208)
at org.briarproject.bramble.settings.SettingsManagerImpl.getSettings(SettingsManagerImpl.java:26)
at org.briarproject.briar.android.navdrawer.PluginViewModel.isPluginEnabled(PluginViewModel.java:204)
at org.briarproject.briar.android.navdrawer.PluginViewModel.lambda$loadSettings$0$PluginViewModel(PluginViewModel.java:187)
at org.briarproject.briar.android.navdrawer.-$$Lambda$PluginViewModel$HPPDOnjY7Hk6kE7RpR2no4vHis8.run(lambda)
at org.briarproject.bramble.TimeLoggingExecutor.lambda$execute$0$TimeLoggingExecutor(TimeLoggingExecutor.java:36)
at org.briarproject.bramble.-$$Lambda$TimeLoggingExecutor$Bqrtbsq_8LcRPoTWBOef6xh7gJg.run(lambda)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1113)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:588)
at java.lang.Thread.run(Thread.java:818)
```
This happens at startup when NavDrawerActivity is created before signing in, as PluginViewModel tries to load the plugin settings.
This is currently harmless because a new NavDrawerActivity instance is created after signing in, with a new view model instance that successfully loads the settings. But that's just a lucky accident. To avoid depending on that, perhaps it would be better to refactor PluginViewModel to use DbViewModel#runOnDbThread()?Adapt to changes in the Android platformSebastianSebastian2021-04-30https://code.briarproject.org/briar/briar/-/issues/1919Password fields not focusable when navigated back to from the next page (keyb...2021-07-06T10:01:58ZIvanaPassword fields not focusable when navigated back to from the next page (keyboard doesn't come up when they are tapped)The test scenario was like this:
I type in my nickname on the first screen and I tap Next button. Then I proceed to type in my passwords, and click next (on the keyboard Next button).
A message comes up onthe next screen informing th...The test scenario was like this:
I type in my nickname on the first screen and I tap Next button. Then I proceed to type in my passwords, and click next (on the keyboard Next button).
A message comes up onthe next screen informing the user that briar has to stay connected and that they user should switch off the battery optimisation.
From that screen user navigates back to the password screen, because they changed their mind about what password to use and they want to change it.
The passwords cannot be changed because the keyboard doesn't come up when fields are tapped, so user cannot type. This was confirmed a bug in mattermost conversation (Testing channel, 3.2.21, around noon)
What should happen here? Should the user be able to chang etheir password from here?
Or should something else happen when they navigate back to the password page?
Please describe the details of solution in here so they can be re-tested when fied.
mp4 attached for your info.
![device-2021-02-03-124850](/uploads/2f3f336a75746a0b25efd7d786886283/device-2021-02-03-124850.mp4)Adapt to changes in the Android platformIvanaIvana2021-04-30https://code.briarproject.org/briar/briar/-/issues/1914Create ViewModels immediately after injection2021-04-26T12:11:53ZakwizgranCreate ViewModels immediately after injectionVarious activities and fragments are creating their view models at different points in their lifecycles. To avoid subtle lifecycle bugs let's standardise this and create view models immediately after injection.
Subtask of #1823.
Test i...Various activities and fragments are creating their view models at different points in their lifecycles. To avoid subtle lifecycle bugs let's standardise this and create view models immediately after injection.
Subtask of #1823.
Test instructions:
This set of changes doesn't introduce new features, it only rearranges some code and is supposed not to break anything. It makes sense to test that the workflows and actions for which code has been touched. These include:
* Creating a new account on a fresh install
* Adding contacts via QR codes and make sure it works
* Add a contact remotely and before that finishes (by only completing the dialog on one of the devices first), check that the screen with the "pending contacts" works as expected
* Changing the alias for a contact
* Changing the account password
* Sending an image and opening that image full screen on both the sender and receiver device
* Opening the transports screen (by opening the navigation drawer on the left, tapping any of the connection modes at the bottom) and check that changing anything there persists (i.e. is still changed when navigating away and back to that screen)Adapt to changes in the Android platformSebastianSebastian2021-04-30https://code.briarproject.org/briar/briar/-/issues/1905Use ContactListViewModel in ContactChooserFragment and IntroductionActivity2021-04-26T12:51:23ZSebastianUse ContactListViewModel in ContactChooserFragment and IntroductionActivity!1341 introduced the ContactListViewModel which should be reusable by ContactChooserFragment and IntroductionActivity!1341 introduced the ContactListViewModel which should be reusable by ContactChooserFragment and IntroductionActivityAdapt to changes in the Android platformSebastianSebastian2021-04-30https://code.briarproject.org/briar/briar/-/issues/1894Introduce ViewModel for RssFeed*Activity2021-05-05T16:08:09ZTorsten GroteIntroduce ViewModel for RssFeed*ActivityThere's `RssFeedManageActivity` and `RssFeedImportActivity`. Maybe one of them or both can be turned into a fragment and share the same ViewModel.
Subtask of #1823.There's `RssFeedManageActivity` and `RssFeedImportActivity`. Maybe one of them or both can be turned into a fragment and share the same ViewModel.
Subtask of #1823.Adapt to changes in the Android platformDaniel LublinDaniel Lublin2021-04-30https://code.briarproject.org/briar/briar/-/issues/1891Migrate SharingController to ViewModel2021-04-26T12:53:15ZTorsten GroteMigrate SharingController to ViewModelUsed by blogs and forums.Used by blogs and forums.Adapt to changes in the Android platformTorsten GroteTorsten Grote2021-04-30https://code.briarproject.org/briar/briar/-/issues/1883Prepare for Resource IDs becoming non-final in Android Gradle Plugin version 5.02021-04-26T12:12:21ZTorsten GrotePrepare for Resource IDs becoming non-final in Android Gradle Plugin version 5.0Adapt to changes in the Android platformSebastianSebastian2021-04-30https://code.briarproject.org/briar/briar/-/issues/1881Migrate ThreadListController to ViewModel2021-04-06T12:40:00ZTorsten GroteMigrate ThreadListController to ViewModelSubtask of #1800Subtask of #1800Adapt to changes in the Android platformTorsten GroteTorsten Grote2021-04-30https://code.briarproject.org/briar/briar/-/issues/1873Migrate GroupController to ViewModel2021-04-06T12:40:04ZTorsten GroteMigrate GroupController to ViewModelSubtask of #1800Subtask of #1800Adapt to changes in the Android platformTorsten GroteTorsten Grote2021-04-30https://code.briarproject.org/briar/briar/-/issues/1872Finish migrating KeyAgreementActivity to ViewModel2021-05-05T16:08:47ZTorsten GroteFinish migrating KeyAgreementActivity to ViewModelThe `KeyAgreementActivity` is abstract and only implemented by `ContactExchangeActivity`. See if both can be merged and more logic moved into `ContactExchangeViewModel`.
`KeyAgreementFragment` is doing lots of work and interactions with...The `KeyAgreementActivity` is abstract and only implemented by `ContactExchangeActivity`. See if both can be merged and more logic moved into `ContactExchangeViewModel`.
`KeyAgreementFragment` is doing lots of work and interactions with briar-core. This should also be moved into the ViewModel.
Subtask of #1823.Adapt to changes in the Android platformIvanaIvana2021-04-30https://code.briarproject.org/briar/briar/-/issues/1871Introduce ViewModel for IntroductionActivity (and ContactChooserFragment)2021-05-05T16:08:46ZTorsten GroteIntroduce ViewModel for IntroductionActivity (and ContactChooserFragment)The IntroductionActivity and its two fragments do lots of work on the UI level, this should be migrated to a ViewModel scoped to the activity that both fragments also access.
Subtask of #1823.
Test instructions:
1. Check that contact ...The IntroductionActivity and its two fragments do lots of work on the UI level, this should be migrated to a ViewModel scoped to the activity that both fragments also access.
Subtask of #1823.
Test instructions:
1. Check that contact list used displays correctly
* Go into a conversation
* menu → make introduction
* check that list does not contain the contact you're introducing
2. Check that contact list used updates properly
* On some device (A) repeat steps from 1.
* While the contact selection list is open: use a different device (B) and sent a message to (A). Make sure the number of unread messages displayed on (A) updates and also the contact moves up to the top as it now is the contact with the last recent message
3. Check that selecting a contact works
* Repeat steps from 1.
* select a contact and check that the next screen show the expected contacts
4. Make sure going back to contact selection and repeatedly selecting contacts works as expected
* Repeat steps from 3.
* Navigate back to the list of contacts to introduce your contact to
* Select a different contact than before, check that the next screen show the contact selected the second time
* Just to be sure, try again with a third contact
5. Check screen rotation doesn't break anything
* Repeat steps from 4.
* During navigation, rotate device at different times during the processAdapt to changes in the Android platformIvanaIvana2021-04-30https://code.briarproject.org/briar/briar/-/issues/1870Migrate ForumController to ViewModel2021-04-06T12:40:10ZTorsten GroteMigrate ForumController to ViewModelSubtask of #1800Subtask of #1800Adapt to changes in the Android platformTorsten GroteTorsten Grote2021-04-30https://code.briarproject.org/briar/briar/-/issues/1869Introduce ViewModel for ForumListFragment2021-04-06T12:40:53ZTorsten GroteIntroduce ViewModel for ForumListFragmentThe ForumListFragment does lots of work on the UI level, this should be migrated to a ViewModel scoped to the fragment. See !1327
Subtask of #1823.The ForumListFragment does lots of work on the UI level, this should be migrated to a ViewModel scoped to the fragment. See !1327
Subtask of #1823.Adapt to changes in the Android platformTorsten GroteTorsten Grote2021-04-30https://code.briarproject.org/briar/briar/-/issues/1867Introduce ViewModel for ContactListFragment2021-04-06T12:39:54ZTorsten GroteIntroduce ViewModel for ContactListFragmentThe ContactListFragment does lots of work on the UI level, this should be migrated to a ViewModel scoped to the fragment. See !1327
Subtask of #1823.The ContactListFragment does lots of work on the UI level, this should be migrated to a ViewModel scoped to the fragment. See !1327
Subtask of #1823.Adapt to changes in the Android platformSebastianSebastian2021-04-30https://code.briarproject.org/briar/briar/-/issues/1866Migrate BlogController and FeedController to ViewModel2021-10-29T12:05:09ZTorsten GroteMigrate BlogController and FeedController to ViewModelBoth controllers share code in BaseController.
Subtask of #1800Both controllers share code in BaseController.
Subtask of #1800Adapt to changes in the Android platformIvanaIvana2021-04-30https://code.briarproject.org/briar/briar/-/issues/1865Migrate SetupController to ViewModel2021-04-06T12:40:15ZTorsten GroteMigrate SetupController to ViewModelSubtask of #1800Subtask of #1800Adapt to changes in the Android platformDaniel LublinDaniel Lublin2021-04-30https://code.briarproject.org/briar/briar/-/issues/1861Remove calls to WifiManager#getConfiguredNetworks()2021-01-06T12:31:58ZakwizgranRemove calls to WifiManager#getConfiguredNetworks()AndroidSecureRandomProvider calls WifiManager#getConfiguredNetworks() at startup. This call requires ACCESS_FINE_LOCATION on API 30. Remove this call, and any other calls to this method.
Subtask of #1827.AndroidSecureRandomProvider calls WifiManager#getConfiguredNetworks() at startup. This call requires ACCESS_FINE_LOCATION on API 30. Remove this call, and any other calls to this method.
Subtask of #1827.Adapt to changes in the Android platformTorsten GroteTorsten Grote2021-04-30https://code.briarproject.org/briar/briar/-/issues/1827Raise target API level to 302021-05-05T16:08:09ZakwizgranRaise target API level to 30Adapt to changes in the Android platform2021-04-30https://code.briarproject.org/briar/briar/-/issues/1826Finish migrating SettingsFragment to ViewModel2021-04-01T13:22:18ZakwizgranFinish migrating SettingsFragment to ViewModelA ViewModel for Settings has been introduced in #214 ([`214-user-avatars`](https://code.briarproject.org/briar/briar/-/tree/214-user-avatars)). The rest of the non-UI logic should get migrated there and exposed via LiveData.
Subtask of ...A ViewModel for Settings has been introduced in #214 ([`214-user-avatars`](https://code.briarproject.org/briar/briar/-/tree/214-user-avatars)). The rest of the non-UI logic should get migrated there and exposed via LiveData.
Subtask of #1823.Adapt to changes in the Android platformTorsten GroteTorsten Grote2021-04-30