Reduce API level to 9
Remove all android-dependence in lah.tex.* by switching to plain text instead of depending on SQLite database and using IStorageManager interface
Move assets to appdata, should be downloaded once needed
Automatically retry failed operation
Notify the activity about result (possibly with exception)
Finish reimplementation of core system using plain text data files
(instead of SQLite database)
TODO Redo the chmod
TODO Place the files in the main directory instead of under /bin/android/
TODO Add code to clean up unused files
Use busybox's chmod and rm instead of Android's
Prompting users for exception resolution options
Update the management activity UI once installation completes
Recover alert dialog for successful compilation results (but not the log text view)
Remove misleading menu items
Remove many printings
Do null-check for all access to progress listeners
Throw appropriate exception when 'index' or 'depend' files are not installed
GZip compress and decompress xz binary
FIX documentation with missing 'data' in paths
Source code clean up
Remove unused libraries (xz-java, jtar, android-support-v4)
Filter out unused referenced source in Spectre
Remove unused resource layout
Use IEnvironment interface instead of passing file paths arround
Move services to a new package lah.texportal.services
Add result notification back
Use TimedShell instead of TimedProcess
Fix access controls (privatize fields) in various classes
Pass TeXPortal application to PackageListAdapter directly in constructor
Official release version 1.9.1
Implement the search box using EditText and TextWatcher
FIX Pass a GUI-related context to the PackageListAdapter to render package items correctly
Change the initialization/state file to ".texportal" following Unix tradition and rename the existing file (if any)
Official release version 1.9.2
Simplified concurrency in TimedShell
Add method to obtain the system binary (xz, ls, ...) in IEnvironment interface or throw exception if the binary or its link target does not exist
Throw exception if data files (desc, index, ...) does not exist
Remove xz binary in repository (app uses xz.gz)
Do null-check when resuming CompilationActivity
Issue detected: might throw OutOfMemory on devices with heap of size 16MB
Remove unused resource images
Move activities ot a new package
Split lah.tex.* to a new repository LAHTeX and link to it
FIX font generation error: handle KpathseaException in executeTeXMF, not only compile
Official release 1.9.3
(Re)move unused InstallationDialog and InstallingPackageListAdapter to root
Spawn thread to poll the log and display on the text view
Add the timeout selection in the user interface
Split the Environment and FileSupplier to separated classes
Resolve missing system files (xz, busybox, ...) by downloading only that file, not all the app data files
Add menu to enable additional languages (for Babel)
Add extra slides (no content yet) for usage tips, app facts and developer information
Reorganize user manuals
Add documents for tips, facts
Update reference to LAHSpectre project
Allow external app to start compilation activity via
 * the action lah.texportal.action.COMPILE; and
 * an extra String argument indicating the compilation engine to run
   (specified via key lah.texportal.argument.ENGINE)
Handle all the set up and Intent in onCreate method instead of onResume
Add Settings activity allowing user to set compilation timeout, package mirror, etc.
`Enhance' UI: pick engine from a "button" grid (1 step) instead of using a spinner and then click a button (2 steps)
(And there is no need to remember the last used engine anymore!)
Split task management to a new object
Official release 1.9.5
FIX bug in compilation timeout is stored as String in shared preference, need to parse to long
Revise documentation
Automatically switch to Dropbox for architecture-dependent packages
Reorder the engines: 1st column are for TeX, pdfTeX; second column LaTeX and pdfLaTeX; third column for the rest
Set the default mirror site to CTAN redirector
Add options to show only error & warning in the log area & automatically resolve a predefined number of issues (but not yet implemented)