The iOS version of our app Tella. Tella is a mobile app designed to protect human rights defenders, advocates, and journalists by encrypting and hiding their sensitive data and safely uploading it to their organization's server.
When you go back, the video should be paused and the audio stopped
Actual behavior
For a second, the audio continues after go back to the list of videos
Steps to reproduce the problem
Homescreen
Tap Video icon.
Select a video from the list
Tap play.
Tap back.
Additional information
Looks like there are some session that gets recorded because after you go again to the same video, the video is still playing automatically, which can cause issues of privacy because the unintended play that is happening.
If the user cancels or encounters an error during the new key creation within the "change lock" menu, the user needs to delete and redownload the app. This is a serious bug.
The reason for the bug is that the old secret key needs to be deleted before the new secret key is created if it is to retain the same tag in the secure enclave (to allow for consistent retrieval). A workaround would be to have an appended number to the tag that increases when the key is regenerated. This appended number can be kept track of dynamically in a separate file. Then the old key can be deleted after the new key is generated, and not be deleted in case of error. Additionally, a message will need to be displayed to the user in case of error.
When the Gallery is in Grid view, it should display a thumbnail of photos and videos so that the user can identify files without having to open them individually.
There are a few times when the app appears to freeze for several seconds. It would be nice to have a spinner to indicate to the user that it's not frozen, just thinking. This is most noticeable on my device when opening the camera for the first time in the app. Decrypting/exporting large files would likely have the same effect.
After the shutdown button is pressed, the files and RSA keys are deleted, but there is no visual feedback for the user. Instead, the user should be redirected to the authentication screen where they create a new password.
Data currently is exported without a file type (just as raw data). This means it needs to be assigned a type after being exported, which isn't the ideal user experience. Will likely need to feed something different to the ActivityViewController.
We were previously using the QuickLook framework to show videos in the gallery page, however after the implementation of encryption this framework no longer worked because it requires a url for files and decrypting returns raw data.
We have not been able to find a framework that supports video previewing from a data object. Another possible solution could be storing data in a temporary file which is deleted after previewing. However, this creates a new problem of how to securely store unencrypted files even temporarily. Ideally, unencrypted data should never be stored on disk.