We would like to propose - and develop, unless anyone else is already planning it - some improvements to the way the app manages data. Specifically, a better user interface for data management.
We don't have time to develop this right now, it will be probably about February, but I thought I should post in advance, either in case people think it's a bad idea, or if core developers or anyone else are planning something similar and it might conflict, that kind of thing...
Open University context
Most of our courses are multiple gigabytes in size, because some of the content contains video. On the plus side, the fact that it is downloaded into the app (compared to e.g. hosting on YouTube) means it can be used offline, which is the key advantage of the Moodle app for our situation. On the minus side, this means students might run into storage limits.
However, I guess this applies to at least some other institutions.
To quickly review the current situation as I understand it (apologies for any errors):
- The Moodle app downloads content files from the websites if you press the Download button next to an activity or course.
- It also downloads the files if you view the content individually without explicitly downloading it. For example, if you click into a Page activity that contains some images, these images will be downloaded just as if you had specifically clicked the 'download' button.
- You can delete data for a single activity by choosing a delete option from the top right menu within the activity.
- You can see how much data is used for an entire site, and delete that data, from the settings.
- All of the data deletion only deletes files and not cached web service responses.
- When you download an activity, the download button disappears (later, if there is a change to that activity, it will show a 'refresh' icon to let you know you might have to re-download, but otherwise, it remains blank). This is a bit confusing to users who might not be certain if the activity downloaded or not.
- You can download an activity from the course page, but you can't delete data from that page (you delete it from inside the activity). It might be hard to discover how to delete the data.
- It is difficult to see how much data is used by an activity (you can do this by trying to delete the data, the confirm box tells you, but this means you can't even know it's worth deleting without trying to delete it).
- It is impossible to see how much data is used by a whole section, or by the whole course.
- It is impossible to delete data for a whole section of activities at once, or for a whole course (e.g. after you finished it).
- When you download a large chunk of content, the app does not appear to warn you in advance if you have insufficient or low storage on your phone. (Note I am not certain about this, maybe it does!)
- The app doesn't warn if you are downloading using mobile data. In the UK, some people use cheaper deals which only offer limited mobile data, e.g. 500MB/month, so it could be a problem if users accidentally download a large chunk of data.
1. Improve information on large downloads
- If you have insufficient storage on your device (and probably allowing say a 1MB margin), you get an error that informs you of this and doesn't let you start downloading the files. This is to avoid the situation where you actually use up all the storage, and other apps / phone functions break.
- Otherwise, a warning box appears if you are downloading a large amount of data. The definition of 'large' should be different for wi-fi vs. mobile data, and depending on your phone's storage. For example, the rules might be something like: > 10MB on wifi, > 1 MB on mobile data, or > 20% of remaining phone storage. (Actual numbers TBC!)
- The warning box should show the size being downloaded, the storage space available on your device, and a warning if you are not on wi-fi.
- If wi-fi is disabled there might be a button to take you to your device's wi-fi settings (if this is easy to do; we've seen it in some other apps).
2. Show icon for downloaded content
- A different Ionic icon (cloud with tick mark) appears after the item has been downloaded and is available offline.
- If you press on this icon, a popup menu will appear which allows you to view the item (in case you just meant to click on the overall row), or delete the downloaded data. Deleting data does the same thing as if you choose that option within the activity.
3.New course data management screen
- It would list all activities where there is data downloaded, organised by section, showing the size of data for each item. Activities with no files stored would not be shown, and sections with no activities with files stored would also not be shown.
- The total size for each section would be shown, and (probably at the top) for the whole course.
- A button would let you delete all data for the course.
- Delete icons next to each section would let you delete data for all activities in that section.
- Delete icons next to each activity would let you delete data for that activity (exactly the same as deleting it from inside that activity).
- From the course menu (top right), Manage course data
- From the menu you get when pressing on the downloaded icon (point 2 above).
Other things users want
- For Android, option to store data on SD card instead of internal memory.
- Show some kind of 'partially downloaded' icon (I don't know which... 'rainy'?) against an activity where the user has not explicitly downloaded it, but where they have visited some pages and it has stored some files.
- Track whether data files were explicitly downloaded by the user or automatically retrieved in the process of viewing pages, playing videos, etc. If they were automatically retrieved, mark them as 'cached' only. Have a setting for the maximum cache size, and periodically clear out data that hasn't been accessed for a while.
- (Nobody suggested this one but I was thinking about it) Deleting data, and the sizes etc, should really include the cached web service responses and not just the downloaded files, sometimes there could be at least a few hundred KB in there and it will mean the 'size accounting' is off...