Commit Graph

265 Commits

Author SHA1 Message Date
Gabriele M
ec269b6fb1 Allow to resume updates fully downloaded
Resuming an update fully downloaded will simply trigger an update
verification. This is useful for imported downloads since it allows
exporting them.
2017-07-20 00:45:34 +02:00
Gabriele M
1659fe26b9 Allow to export verified updates 2017-07-20 00:45:34 +02:00
Gabriele M
ee6013dfd1 Allow to copy the URL of the updates 2017-07-20 00:45:34 +02:00
Gabriele M
257ab087d6 Enable action mode on card long press
This will allow to perform different operations, although currently
it's only used to delete updates.
2017-07-20 00:45:34 +02:00
Gabriele M
ebe0bb2e42 Use a method to determine if the list is "busy"
Consider also installing updates, needed for A/B updates.
2017-07-19 21:11:46 +02:00
Gabriele M
554c294a39 Define abstract class for the activity containing the updates list
While at it, rename showSnackBar() to showSnackbar() since normally
the 'B' is lowercase.
2017-07-19 21:11:46 +02:00
Gabriele M
2b276395e1 Use /data/lineageos_updates/ as download path
GmsCore deletes the files in /data/ota_package/, so don't use it.
2017-07-19 18:50:16 +02:00
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