Instead of directly copying "icudt.dat" file, copy all file in "icu"
assets directory.
The icu data filename must include the version of icu lib.
But we don't want android code to be dependent of the icu lib version.
So let's copy all files in the icu directory.
Fixes#201.
By default, literal numbers are `int`. If the size of a zim doesn't fit in
a `int`, java will complains.
By appending a `L` at the end of the literal number, java will interpret
it as a `long` and will accept it.
Shows the name of the language in that language for each choice in the
picker. Also shows number of matching items for that language.
A bit of refactoring, cleaning up the language population logic. Fixes
bug where after the initial language population & persisting no new
languages would be populated (if new item with that lang got downloaded).
When going from no filters to any filter the app would crash, because the
filteredBooks list would be set to the immutable allBooks and couldn't be
cleared anymore. Instead do a deep copy of the elements.
Also some minor fixes (typos, style).
For non embedded zim file, we use the zim file only to get its size.
If we want to build an apk, we do not need the zim file itself, we only
need its size.
Google itself says it is better to specify the versions in the gradle file:
https://developer.android.com/studio/publish/versioning.html
And it allow us the specify a specific versionCode by environment variable
instead of by modifying files.