Gabriele M
821efd8219
Rename UpdaterControllerInt to Controller
2017-07-18 22:26:51 +02:00
Gabriele M
009f41cc90
Remove unneeded throws declaration
2017-07-18 22:17:29 +02:00
Gabriele M
341eec0b28
Fix a couple of typos
2017-07-18 22:17:29 +02:00
Gabriele M
82dbc8fde3
Remove a couple of extra semicolons
2017-07-18 22:17:29 +02:00
Gabriele M
6f1861abe0
Remove unused resources
2017-07-18 22:17:29 +02:00
Gabriele M
96b1145b29
Add missing android namespace declaration
2017-07-18 22:17:29 +02:00
Gabriele M
a06fa3f9f0
Add own formatDuration() method
...
DateUtils.formatDuration() is not public, so create our own version.
2017-07-18 22:17:26 +02:00
Gabriele M
af1e9c4478
Create model package
2017-07-18 22:15:13 +02:00
Gabriele M
6abafa60a8
Always show downloaded data in megabytes
...
We omit the unit for the downloaded data and assume it's MB, so
we must always show megabytes.
2017-07-18 13:37:44 +02:00
Gabriele M
8ce10da9ce
Use UTC timezone for the build dates
2017-07-18 12:52:08 +02:00
Gabriele M
fecd837b70
Fix fling gestures when expanding the AppBar from RecyclerView
...
Fling gestures don't work when expanding the AppBar. Define a new
behavior class to fix them
https://issuetracker.google.com/issues/37058076
https://stackoverflow.com/a/32454407
2017-07-18 12:51:42 +02:00
Gabriele M
e710060baa
Show a snackbar when trying to download/install invalid updates
...
Instead of disabling the action button, keep it enabled and make it
show a snackbar to inform the user about the impossibility of
installing the selected update.
2017-07-18 00:19:41 +02:00
Gabriele M
fe21c2cd49
Treat download resume and verification in the same way
...
Allowing to verify downloads, but not install them makes no sense
currently, so don't treat the two cases differently.
2017-07-18 00:19:33 +02:00
Gabriele M
4674d68eb3
Choose layout depending on the update persistent status
...
Using the persistent status is simpler and less error prone. This
fixes the view of verified downloads, which aren't shown as such.
2017-07-17 19:34:32 +02:00
Gabriele M
c6a60d78f5
Use a localized string as default content description
2017-07-17 14:48:59 +02:00
Gabriele M
d3436c37e9
Use Compat theme for the AppBar title
2017-07-17 13:17:48 +02:00
Gabriele M
61f9bb8f30
Get the height of the ToolBar from the current theme
2017-07-17 12:51:40 +02:00
Gabriele M
d0f9c4be22
Don't use the filename as notification title
...
Be consistent with the rest of the app and use "version - date".
2017-07-17 12:27:15 +02:00
Gabriele M
c1f0aab382
Show snackbar for some download status changes
2017-07-17 12:27:15 +02:00
Gabriele M
b337452eeb
Show download button if a download fails immediately
...
If the download fails without downloading any data, treat it as a
new file.
2017-07-17 12:27:15 +02:00
Gabriele M
f496f0d0e7
Don't set status of download to unknown when download fail
...
The controller should report the actual status of the downloads, let
the clients handle the special cases. Also, don't try to resume
downloads whose destination doesn't exist.
This partially reverts 7369e9cea9
("Set the status of paused downloads to unknown if no file exists").
2017-07-17 12:27:15 +02:00
Gabriele M
fcce65d4ed
Improve D-pad navigation
2017-07-17 12:27:11 +02:00
Gabriele M
1f0aa4e79b
Collapse header if the device has no touchscreen
...
The header can't be collpased without a touchscreen, so collapse
it if we detect that the current device has no touchscreen.
2017-07-17 12:26:18 +02:00
Gabriele M
1af40da839
Send the notification and then start the download
...
In this way if the download fails immediately, it will fail after the
notification.
2017-07-17 12:26:08 +02:00
Gabriele M
75befd1738
Always cleanup the download directory
...
This shouldn't really be necessary since the cleanup is needed after
the application data has been wiped, which by default has the
automatic updates check enabled.
2017-07-17 00:33:19 +02:00
Gabriele M
c3515644b6
Ask for confirmation before installing updates
...
Since there's no quick and clean way to show a dialog from a
serivice, don't allow to install updates from the notification.
2017-07-16 22:52:45 +02:00
Gabriele M
12688ba761
Allow to check if an update is of type AB from anywhere
2017-07-16 22:52:45 +02:00
Gabriele M
4182e3d30e
Allow to delete updates on card long press
2017-07-16 22:52:45 +02:00
Gabriele M
e51be80f6a
Initial UI work
...
Look and feel based on CMUpdater.
2017-07-16 22:52:45 +02:00
Gabriele M
a455c95e0c
Install updates from UpdaterService
...
This allows to easily handle AB updates.
2017-07-16 22:52:45 +02:00
Gabriele M
fd856dce70
Allow to disable the automatic updates check
2017-07-16 22:52:45 +02:00
Gabriele M
f94846674f
Allow to check if an AB update is being installed
2017-07-16 21:24:07 +02:00
Gabriele M
601823dfc7
Allow to check if an update is being verified
2017-07-16 21:24:07 +02:00
Gabriele M
7369e9cea9
Set the status of paused downloads to unknown if no file exists
...
This is useful in case the download is stopped before it could start.
2017-07-16 21:24:06 +02:00
Gabriele M
40f15b1fb3
Reset speed and ETA when pausing downloads
2017-07-15 02:10:34 +02:00
Gabriele M
c7f4c48a67
Allow to re-install the current update
2017-07-15 02:10:32 +02:00
Gabriele M
d30ba00a7b
Update download size only if it was unknown
...
The returned content-length depends on the requested range, therefore
when resuming download the reported size is smaller than the actual
file size and we should not update it.
2017-07-15 02:10:31 +02:00
Gabriele M
66ca7a79df
Sort the updates, not their IDs
...
Also, use a comparator to sort the updates and stop using the
Comparable interface. There are different ways to sort updates,
so don't define one.
2017-07-10 01:32:19 +02:00
Gabriele M
7d55cd93ee
Add missing @Override annotation
2017-07-10 01:32:19 +02:00
Gabriele M
e34334a1d7
Pass the destination File to the callback
...
The current argument is unused and it should have been removed
with commit 81229329f1
("Generate download clients using a builder class"). Instead of
removing it completely, use it to pass the File of the download.
2017-07-10 01:31:35 +02:00
Gabriele M
e1dd2a8d73
Fix the download path of CMUpdater
2017-07-08 22:18:15 +02:00
Gabriele M
79b44602e0
Allow to have different updates using the same filename
2017-07-08 22:18:15 +02:00
Gabriele M
4979c4d78d
Increase number of veryfing updates immediately
...
Or we might notify the listeners too early.
2017-07-08 22:11:01 +02:00
Gabriele M
c0bf32c097
Don't allow to install older builds
...
In some cases, installing an update older than the one currently
installed requires a data wipe, so don't allow it. However, allow
to verify old updates if not verified yet (e.g. when imported).
2017-07-08 22:11:00 +02:00
Gabriele M
1c1bac67b4
Protect the data of UpdaterController
...
Create copies of the objects not to allow other classes change them,
excluding those of controller package.
2017-07-08 22:10:59 +02:00
Gabriele M
e4d32bc04f
Add copy constructors to Update and UpdateDownload
2017-07-08 22:10:59 +02:00
Gabriele M
a2919a8947
Don't modify the objects of the controller directly
...
Add a method to the controller that allows to set a list of
downloads as not available online.
2017-07-08 22:10:58 +02:00
Gabriele M
b4b8409766
Remove some useless method arguments
2017-07-08 22:10:56 +02:00
Gabriele M
e413510093
Document the methods of DownloadClient
2017-07-08 17:43:56 +02:00
Gabriele M
1c212075f1
Allow to resume downloads only if the destination file exists
2017-07-08 17:43:56 +02:00