Commit Graph

234 Commits

Author SHA1 Message Date
Gabriele M
87202371de Don't change status when cancelled downloads fail
It takes a bit of time to actually pause (i.e. cancel) a download. If
we change the update status once the download is actually cancelled,
we might override any status change that happened between the user
request and its completion. For example, the following can happen when
the user deletes an ongoing downloads:

 - pauseDownload(): DOWNLOADING -> PAUSED
 - deleteUpdate(): PAUSED -> DELETED
 - onFailure(): DELETED -> PAUSED

Don't change the status of cancelled downloads from the onFailure()
callback not to have an incorrect final status.

Change-Id: Iee90482d82df984672c59d7c508ad834fa08061f
2017-08-18 14:31:54 +02:00
Luca Stefani
4c5dd9c391 Disable clip to padding
* Allow the last item shadow to be seen

Change-Id: If24b0db3feb75a4468b6dddde62b4c79917552c8
2017-08-14 22:47:03 +02:00
Luca Stefani
a0cd205b1d Don't add margins in update items
Change-Id: I71a22a4bd0a15e70a045cef1c49f67ff5625dbd6
2017-08-14 22:47:02 +02:00
Luca Stefani
8217a4aac6 Exclude updater from recents
Change-Id: Iae2737aa5890aa00da79c5b04dd253273aa9fabc
2017-08-14 22:47:01 +02:00
Gabriele M
7c25e7aef9 Show message if there are no updates 2017-08-09 17:18:15 +02:00
Gabriele M
ca5b75ebd1 Don't use lower case device names when requesting the updates list
URLs are case sensitive, the server expects the same exact value
stored in the system property, so don't change it.
2017-08-08 19:08:37 +02:00
Gabriele M
ea3ac38e25 Dismiss some notifications when clicked 2017-08-08 10:32:48 +02:00
Gabriele M
acd7387d23 Warn user about downloading update package via mobile data
Based on: 8928492535
2017-08-08 10:32:48 +02:00
Gabriele M
cdc4849767 Remove duplicate icon
ic_tab_install is basically the same as ic_system_update. The only
difference is the color, but that doesn't really matter.
2017-08-07 16:43:34 +02:00
Gabriele M
415e62df5d Add permission to show system alert dialogs
While at it, sort the permissions and fix their coding style.
2017-07-26 11:57:33 +02:00
Gabriele M
13f3849b96 Actually check if an OTA is encrypted 2017-07-26 11:57:32 +02:00
Gabriele M
d854c6377b Restore the status of the checkboxes when creating the menu 2017-07-22 20:39:52 +02:00
Gabriele M
758521bb53 Allow to delete updates currently in download 2017-07-22 20:38:20 +02:00
Gabriele M
8768daddf0 Add option to delete updates when installed
This is mostly useful on encrypted devices since it allows to not
copy the update before installing it.
2017-07-22 20:38:20 +02:00
Gabriele M
20ea513684 Create a copy of the zips on encrypted devices
On encrypted devices, uncrypt modifies the zip so that it can be
read without mounting the filesystem. Instead of installing the zip
downloaded, create a copy of it which will be deleted. This will
allow to re-install the zip multiple times or export it after
installing it.
2017-07-21 17:05:53 +02:00
Gabriele M
09968f1b25 Rename cancelDownload() to deleteUpdate()
The method can be used to delete any update, incomplete or not.
2017-07-21 17:05:53 +02:00
Gabriele M
1e2f353b55 Rename UpdateDownload and Update classes 2017-07-21 17:04:12 +02:00
Gabriele M
28b8774db6 Define interfaces with only getters for the updates
This also changes the code to use the new interfaces wherever the
update is not supposed to change.
2017-07-21 16:52:24 +02:00
Gabriele M
11f82cfb87 Reorder includes directives
These went out of order moving some stuff around. Reorder them so
that there won't be unnecessary line changes in future.
2017-07-21 01:17:19 +02:00
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