Primary
- Remove all unnecessary 'mkdir' code throughout classes since all folders now created in FieldworkerProfile.java class.
- Implement timer/alarm to stop recording if over a certain time limit or delete huge files when discovered at QC time (i.e. prior to upload). Currently large files are simply skipped for QC to avoid breaking QC or spending unnecessary processing time on 'bad' files.
- Find out why certain profiles are reported to 'break' Woefzela. Special characters?
- Find a better solution if '#times corpus wrapped' is numerous i.e. if load amount >> corpus size. (Verify if RandomAccessFile now treats UTF-8 correctly.)
- Make locale loading from external file on SD card i.e. not at compile-time. (Check reference in spinners)
- Find proper solution for externalized values to be pulled into java classes and not just into Activities.
- Load training and test number of prompt targets from file not at compile-time. (Now only recording 'over-ride' file on SD card).
- Make QC faster for smaller processors.
- Implement utterance length quality checks.
- Remove 'Length' field on main recording screen (statistics area) until actual utterance duration has been fully implemented.
- Stop QC process earlier if session target has been reached i.e. not to wait as long afterwards.
- Move all SD card and folder checking to separate class. i.e. remove ifCanReadAndWriteSDCARD() from GetValueFromFileOnSDCard class, create a separate (similar) class for SD card testing and instantiate object in all other classes where checking is needed rather than duplicate the code.
- Remove any legacy/unused variables.
- Fix abnormal functioning when receiving a call during session.
- Improve some variables' scope by either increasing or reducing.
- Remove 'dependency' on South African ID number format by requiring either a DOB entry or a current age entry. (Both Fieldworker and Respondent Information screens).
- Revisit field requirements for all input screens, tighten/loosen requirements and implement proper type-checking e.g. no colons ":" in profiles as may end up in filename; while also globalizing it (e.g. country prefix for telephone numbers). e.g. if Mobile number is really required, check number of digits in it.
- Handle empty lines in corpus more robustly. Currently signifies end of corpus.
- Fix problem of advancing to next prompt when navigating to HOME screen (save state).
- Check if non-standard characters in profiles does not load correctly and change.
- Add an error dialog when calling CreateErrorLogThenDie() to be more informative without having to go to the file written to SD card (or if no file could be written due to SD card problems).
- etc.
Secondary
- Provide a 'built-in' 'corpus' and locale for first-user experience interaction.
- Clean up/tidy source code and make more efficient.
- Change Example field values based on locale setting of phone.
- Remove saveInContacts code and/or and deprecated class dependencies.
- Implement 'Reset all fields...'
- Add About menu with URL to relevant site.
- Move all logging code e.g. log.i to the logging class e.g. log.logI (conditional output).
- Experiment further with level limits (e.g. minimum volume level) and either set better global limits or determine best way to find real-time limits.
- Add sessionID and date-time stamp of prompt list fetch in the tracking file for starting point of corpus loading e.g. af_ZA_lineIndexStartedReadingFrom.txt
- etc.