Fixing the latest batch of nasty low level issues.
* Handle different `SIGSYS` event ordering on armhf devices running a newer version of Android. People would have seen this as being stuck at the end of extraction.
* Handle `waitpid` being blocked. Would show up as infinite spinning at the starting service stage on some devices/versions of Android.
* Handle `sendmmsg` being block on some intel/amd devices.
* Handle some devices (Leveno Yogabook, any others?) using a different set of libraries than advertised in `Build.SUPPORTED_ABIS`
* Handle server connection numbers in appropriate places, instead of tacking them onto session objects.
* Add end-to-end test for vnc session regression.
* Lint
* Codify service type as a sealed class.
* Add AppDetailsViewModel
* Disable changing of service type while app is running.
* Remove commented code.
* Update tests.
* Restructure app details to be more functional
* Write tests.
* Lint
* Fix bug stopping sessions from restarting.
* Fix bug stopping single session support message from displaying.
* Add regressions for fixed bugs.
* Lint
* Add tests for AppsRepository
* Add tests for GithubAppsFetcher
* Add HttpStream integration tests.
* Lint and remove wait for display during end-to-end test.
* Incorporate separator into list item.
* Insert items into adapter with order.
* Match production functionality.
* Lint
* Group adapter logic into descriptive functions.
* Test waiting for apps list refresh.
* Switch to Barista. Implement through permission allowance.
* Create happy path end-to-end test.
* Use orchestrator in firebase.
* Fix config.
* Tune sleeps.
* Fix permission granting
* Add more waits.
* Remove unused import.
* Conditionally look for permissions.
* Remove unused import.
* Lint
* Skip permission checking.
* Lint
* Wait even longer for downloads to complete.
* Switch to using phsyical device during CI.
* Fix coverage reporting.
* Fix file path
* Update bucket path
* Automate removal of remote results generated by manual web client tests.
* Allow removal to 'fail' if no such objects exist.
* Force command to succeed.
* Always return true from command
* Fix bug that caused landing page to appear on rotation (#931)
* Fix bug that caused landing page to appear on rotation.
* lint
* Fix version check for Q warning.
* Fix progress dialog displaying after session has started.
* Remove unused service intent.
* Emit reset state from main vm.
* Add session activation hook to reset startup state.
* Add test for reset
* Set initial state to WaitingForInput
* Fix tests.
* Fix bug causing progress dialog to not be updated when proot debug logging. (#933)
* Fix bug causing progress dialog to not be updated when proot debug logging
* Fix test
* Refactor utils package. (#934)
* Refactor preference classes into new package.
* Move DownloadManagerWrapper to DownloadUtility. Move top-level functions.
* Update tests.
* Rename DownloadUtility to AssetDownloader.
* Rename FilesystemUtility to FilesystemManager.
* Rename NotificationUtility to NotificationConstructor
* Rename ServerUtility to LocalServerManager
* Rename ValidationUtility to CredentialValidator
* Move top-level function to extension. Separate Localization.
* Rename LocalFileLocator to AppDetails
* Refactor the rest of AndroidUtility.
* Rename test files.
* Bump version.
* Fix download cache access illegal state message. (#935)
* Remove current state checks in FSM for syncing downloads.
* Remove matching VM state.
* Remove string resources.
* Fix illegal state transition when downloads fail by cancelling downloads.
* Refactor class names. (#940)
* Refactor some App -> Apps for some elements.
* Turn IllegalStateHandler into an object
* Fix test and shorten file.
* Improve spacing
* Refactor preference classes into new package.
* Move DownloadManagerWrapper to DownloadUtility. Move top-level functions.
* Update tests.
* Rename DownloadUtility to AssetDownloader.
* Rename FilesystemUtility to FilesystemManager.
* Rename NotificationUtility to NotificationConstructor
* Rename ServerUtility to LocalServerManager
* Rename ValidationUtility to CredentialValidator
* Move top-level function to extension. Separate Localization.
* Rename LocalFileLocator to AppDetails
* Refactor the rest of AndroidUtility.
* Rename test files.
* Bump version.
* Remove unused service intent.
* Emit reset state from main vm.
* Add session activation hook to reset startup state.
* Add test for reset
* Set initial state to WaitingForInput
* Fix tests.
* Refactor user prompts into an interface with implemented classes.
* Implement preference and behavior for opt-in.
* Update userfeedback tests.
* Add snapshot test for userfeedback
* Add CollectionOptInprompterTest
* Lint
* Add logic to include navigation bar size when getting device dimensions
* Update mainactivity
* Update tests
* lint
* Pass orientation instead of context down to utility class
* Lint lint lint
* Rename functions get/save
* Remove function to "check orientation"
* Update tests